Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/bin/fsnotifier and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/bin/fsnotifier differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/bin/fsnotifier64 and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/bin/fsnotifier64 differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/bin/libdbm64.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/bin/libdbm64.so differ diff -Nru pycharm-2018.3.5/bin/pycharm.sh pycharm-2019.1/bin/pycharm.sh --- pycharm-2018.3.5/bin/pycharm.sh 2019-02-26 09:00:10.000000000 +0000 +++ pycharm-2019.1/bin/pycharm.sh 2019-03-19 14:38:34.000000000 +0000 @@ -63,8 +63,8 @@ JDK="$PYCHARM_JDK" fi -if [ -z "$JDK" -a -s "$HOME/.PyCharmCE2018.3/config/pycharm.jdk" ]; then - USER_JRE=`"$CAT" $HOME/.PyCharmCE2018.3/config/pycharm.jdk` +if [ -z "$JDK" -a -s "$HOME/.PyCharmCE2019.1/config/pycharm.jdk" ]; then + USER_JRE=`"$CAT" $HOME/.PyCharmCE2019.1/config/pycharm.jdk` if [ ! -d "$USER_JRE" ]; then USER_JRE="$IDE_HOME/$USER_JRE" fi @@ -159,9 +159,9 @@ elif [ -r "$IDE_HOME.vmoptions" ]; then # Toolbox VM_OPTIONS_FILE="$IDE_HOME.vmoptions" -elif [ -r "$HOME/.PyCharmCE2018.3/config/pycharm$BITS.vmoptions" ]; then +elif [ -r "$HOME/.PyCharmCE2019.1/config/pycharm$BITS.vmoptions" ]; then # user-overridden - VM_OPTIONS_FILE="$HOME/.PyCharmCE2018.3/config/pycharm$BITS.vmoptions" + VM_OPTIONS_FILE="$HOME/.PyCharmCE2019.1/config/pycharm$BITS.vmoptions" elif [ -r "$IDE_BIN_HOME/pycharm$BITS.vmoptions" ]; then # default, standard installation VM_OPTIONS_FILE="$IDE_BIN_HOME/pycharm$BITS.vmoptions" @@ -205,7 +205,7 @@ ${VM_OPTIONS} \ "-XX:ErrorFile=$HOME/java_error_in_PYCHARM_%p.log" \ "-XX:HeapDumpPath=$HOME/java_error_in_PYCHARM.hprof" \ - -Didea.paths.selector=PyCharmCE2018.3 \ + -Didea.paths.selector=PyCharmCE2019.1 \ "-Djb.vmOptionsFile=$VM_OPTIONS_FILE" \ ${IDE_PROPERTIES_PROPERTY} \ -Didea.platform.prefix=PyCharmCore \ diff -Nru pycharm-2018.3.5/build.txt pycharm-2019.1/build.txt --- pycharm-2018.3.5/build.txt 2019-02-26 08:40:09.000000000 +0000 +++ pycharm-2019.1/build.txt 2019-03-19 14:23:57.000000000 +0000 @@ -1 +1 @@ -PC-183.5912.18 \ No newline at end of file +PC-191.6183.50 \ No newline at end of file diff -Nru pycharm-2018.3.5/debian/changelog pycharm-2019.1/debian/changelog --- pycharm-2018.3.5/debian/changelog 2019-02-28 14:50:32.000000000 +0000 +++ pycharm-2019.1/debian/changelog 2019-03-30 12:22:08.000000000 +0000 @@ -1,26 +1,26 @@ -pycharm (2018.3.5-1~trusty) trusty; urgency=medium +pycharm (2019.1-1~trusty) trusty; urgency=medium * New upstream version - -- Viktor Krivak Thu, 28 Feb 2019 14:50:32 -0000 + -- Viktor Krivak Sat, 30 Mar 2019 12:22:08 -0000 -pycharm (2018.3.5-1~xenial) xenial; urgency=medium +pycharm (2019.1-1~xenial) xenial; urgency=medium * New upstream version - -- Viktor Krivak Thu, 28 Feb 2019 14:50:11 -0000 + -- Viktor Krivak Sat, 30 Mar 2019 12:21:49 -0000 -pycharm (2018.3.5-1~bionic) bionic; urgency=medium +pycharm (2019.1-1~bionic) bionic; urgency=medium * New upstream version - -- Viktor Krivak Thu, 28 Feb 2019 14:49:50 -0000 + -- Viktor Krivak Sat, 30 Mar 2019 12:21:29 -0000 -pycharm (2018.3.5-1~cosmic) cosmic; urgency=medium +pycharm (2019.1-1~cosmic) cosmic; urgency=medium * New upstream version - -- Viktor Krivak Thu, 28 Feb 2019 14:49:20 -0000 + -- Viktor Krivak Sat, 30 Mar 2019 12:21:02 -0000 pycharm (5.0.3-1~getdeb1) trusty; urgency=medium Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/help/ReferenceCardForMac.pdf and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/help/ReferenceCardForMac.pdf differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/help/ReferenceCard.pdf and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/help/ReferenceCard.pdf differ diff -Nru pycharm-2018.3.5/helpers/generator3.py pycharm-2019.1/helpers/generator3.py --- pycharm-2018.3.5/helpers/generator3.py 2019-02-26 08:40:09.000000000 +0000 +++ pycharm-2019.1/helpers/generator3.py 2019-03-19 14:23:58.000000000 +0000 @@ -311,13 +311,13 @@ fname = build_output_name(subdir, name) action("opening %r", fname) old_modules = list(sys.modules.keys()) - imported_module_names = [] + imported_module_names = set() class MyFinder: # noinspection PyMethodMayBeStatic def find_module(self, fullname, path=None): if fullname != name: - imported_module_names.append(fullname) + imported_module_names.add(fullname) return None my_finder = None @@ -333,7 +333,7 @@ if my_finder: sys.meta_path.remove(my_finder) if imported_module_names is None: - imported_module_names = [m for m in sys.modules.keys() if m not in old_modules] + imported_module_names = set(sys.modules.keys()) - set(old_modules) redo_module(name, fname, mod_file_name, doing_builtins) # The C library may have called Py_InitModule() multiple times to define several modules (gtk._gtk and gtk.gdk); @@ -405,6 +405,14 @@ if __name__ == "__main__": + try: + # Get traces after segmentation faults + import faulthandler + + faulthandler.enable() + except ImportError: + pass + from getopt import getopt helptext = get_help_text() @@ -412,7 +420,7 @@ opts = dict(opts) quiet = '-q' in opts - _is_verbose = '-v' in opts + set_verbose('-v' in opts) subdir = opts.get('-d', '') if not opts or '-h' in opts: Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pip-9.0.3.tar.gz and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pip-9.0.3.tar.gz differ diff -Nru pycharm-2018.3.5/helpers/profiler/_imps/_pydev_pkgutil_old.py pycharm-2019.1/helpers/profiler/_imps/_pydev_pkgutil_old.py --- pycharm-2018.3.5/helpers/profiler/_imps/_pydev_pkgutil_old.py 2019-02-26 08:40:09.000000000 +0000 +++ pycharm-2019.1/helpers/profiler/_imps/_pydev_pkgutil_old.py 2019-03-19 14:23:58.000000000 +0000 @@ -3,10 +3,10 @@ # NOTE: This module must remain compatible with Python 2.3, as it is shared # by setuptools for distribution with Python 2.3 and up. -import imp import os -import os.path import sys +import imp +import os.path from types import ModuleType __all__ = [ @@ -540,7 +540,7 @@ if os.path.isfile(pkgfile): try: f = open(pkgfile) - except IOError, msg: + except IOError as msg: sys.stderr.write("Can't open %s: %s\n" % (pkgfile, msg)) else: diff -Nru pycharm-2018.3.5/helpers/pycharm/__jb.for_twisted/twisted/plugins/teamcity_plugin.py pycharm-2019.1/helpers/pycharm/__jb.for_twisted/twisted/plugins/teamcity_plugin.py --- pycharm-2018.3.5/helpers/pycharm/__jb.for_twisted/twisted/plugins/teamcity_plugin.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm/__jb.for_twisted/twisted/plugins/teamcity_plugin.py 2019-03-19 14:23:58.000000000 +0000 @@ -8,7 +8,10 @@ class FailureWrapper(Failure): def __getitem__(self, key): - return self.value[key] + try: + return self.value[key] + except (KeyError, TypeError): + return None class TeamcityReporter(TeamcityTestResult, Reporter): diff -Nru pycharm-2018.3.5/helpers/pycharm/_jb_parallel_tree_manager.py pycharm-2019.1/helpers/pycharm/_jb_parallel_tree_manager.py --- pycharm-2018.3.5/helpers/pycharm/_jb_parallel_tree_manager.py 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm/_jb_parallel_tree_manager.py 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,69 @@ +# coding=utf-8 + + +class ParallelTreeManager(object): + """ + Manages output tree by building it from flat test names. + """ + + def __init__(self): + super(ParallelTreeManager, self).__init__() + self._max_node_id = 0 + self._branches = dict() # key is test name as tuple, value is tuple of test_id, parent_id + + def _next_node_id(self): + self._max_node_id += 1 + return self._max_node_id + + def level_opened(self, test_as_list, func_to_open): + """ + To be called on test start. + + :param test_as_list: test name splitted as list + :param func_to_open: func to be called if test can open new level + :return: None if new level opened, or tuple of command client should execute and try opening level again + Command is "open" (open provided level) or "close" (close it). Second item is test name as list + """ + + if tuple(test_as_list) in self._branches: + # We have parent, ok + func_to_open() + return None + elif len(test_as_list) == 1: + self._branches[tuple(test_as_list)] = (self._next_node_id(), 0) + func_to_open() + return None + + commands = [] + + parent_id = 0 + for i in range(len(test_as_list)): + tmp_parent_as_list = test_as_list[0:i + 1] + try: + parent_id, _ = self._branches[tuple(tmp_parent_as_list)] + except KeyError: + node_id = self._next_node_id() + self._branches[tuple(tmp_parent_as_list)] = (node_id, parent_id) + parent_id = node_id + if tmp_parent_as_list != test_as_list: # Different test opened + commands.append(("open", tmp_parent_as_list)) + if commands: + return commands + else: + func_to_open() + + def level_closed(self, test_as_list, func_to_close): + """ + To be called on test end or failure. + + See level_opened doc. + """ + func_to_close() + + # Part of contract + def get_node_ids(self, test_name): + """ + + :return: (current_node_id, parent_node_id) + """ + return self._branches[tuple(test_name.split("."))] diff -Nru pycharm-2018.3.5/helpers/pycharm/_jb_pytest_runner.py pycharm-2019.1/helpers/pycharm/_jb_pytest_runner.py --- pycharm-2018.3.5/helpers/pycharm/_jb_pytest_runner.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm/_jb_pytest_runner.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,16 +1,20 @@ # coding=utf-8 -import re import sys import pytest from _pytest.config import get_plugin_manager +from _pytest import config -from _jb_runner_tools import jb_start_tests, jb_patch_separator, jb_doc_args, JB_DISABLE_BUFFERING -from teamcity import pytest_plugin from pkg_resources import iter_entry_points +from _jb_runner_tools import jb_patch_separator, jb_doc_args, JB_DISABLE_BUFFERING, start_protocol, parse_arguments, \ + set_parallel_mode +from teamcity import pytest_plugin + if __name__ == '__main__': - path, targets, additional_args = jb_start_tests() + real_prepare_config = config._prepareconfig + + path, targets, additional_args = parse_arguments() sys.argv += additional_args joined_targets = jb_patch_separator(targets, fs_glue="/", python_glue="::", fs_to_python_glue=".py::") # When file is launched in pytest it should be file.py: you can't provide it as bare module @@ -21,11 +25,21 @@ # to prevent "plugin already registered" problem we check it first plugins_to_load = [] if not get_plugin_manager().hasplugin("pytest-teamcity"): - if "pytest-teamcity" not in map(lambda e:e.name, iter_entry_points(group='pytest11', name=None)): + if "pytest-teamcity" not in map(lambda e: e.name, iter_entry_points(group='pytest11', name=None)): plugins_to_load.append(pytest_plugin) args = sys.argv[1:] if JB_DISABLE_BUFFERING and "-s" not in args: args += ["-s"] + jb_doc_args("pytest", args) + # We need to preparse numprocesses because user may set it using ini file + config_result = real_prepare_config(args, plugins_to_load) + + if getattr(config_result.option, "numprocesses", None): + set_parallel_mode() + + config._prepareconfig = lambda _, __: config_result + + start_protocol() pytest.main(args, plugins_to_load) diff -Nru pycharm-2018.3.5/helpers/pycharm/_jb_runner_tools.py pycharm-2019.1/helpers/pycharm/_jb_runner_tools.py --- pycharm-2018.3.5/helpers/pycharm/_jb_runner_tools.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm/_jb_runner_tools.py 2019-03-19 14:23:58.000000000 +0000 @@ -2,12 +2,11 @@ """ Tools to implement runners (https://confluence.jetbrains.com/display/~link/PyCharm+test+runners+protocol) """ -import atexit -import _jb_utils import os import re import sys +import _jb_utils from teamcity import teamcity_presence_env_var, messages # Some runners need it to "detect" TC and start protocol @@ -21,6 +20,7 @@ # getcwd resolves symlinks, but PWD is not supported by some shells PROJECT_DIR = os.getenv('PWD', os.getcwd()) + def _parse_parametrized(part): """ @@ -39,125 +39,38 @@ return [match.group(1), match.group(2)] -# Monkeypatching TC to pass location hint - -class _TreeManager(object): - """ - Manages output tree by building it from flat test names. - """ - +class _TreeManagerHolder(object): def __init__(self): - super(_TreeManager, self).__init__() - # Currently active branch as list. New nodes go to this branch - self.current_branch = [] - # node unique name to its nodeId - self._node_ids_dict = {} - # Node id mast be incremented for each new branch - self._max_node_id = 0 - - def _calculate_relation(self, branch_as_list): - """ - Get relation of branch_as_list to current branch. - :return: tuple. First argument could be: "same", "child", "parent" or "sibling"(need to start new tree) - Second argument is relative path from current branch to child if argument is child - """ - if branch_as_list == self.current_branch: - return "same", None - - hierarchy_name_len = len(branch_as_list) - current_branch_len = len(self.current_branch) - - if hierarchy_name_len > current_branch_len and branch_as_list[0:current_branch_len] == self.current_branch: - return "child", branch_as_list[current_branch_len:] - - if hierarchy_name_len < current_branch_len and self.current_branch[0:hierarchy_name_len] == branch_as_list: - return "parent", None - - return "sibling", None - - def _add_new_node(self, new_node_name): - """ - Adds new node to branch - """ - self.current_branch.append(new_node_name) - self._max_node_id += 1 - self._node_ids_dict[".".join(self.current_branch)] = self._max_node_id - - def level_opened(self, test_as_list, func_to_open): - """ - To be called on test start. - - :param test_as_list: test name splitted as list - :param func_to_open: func to be called if test can open new level - :return: None if new level opened, or tuple of command client should execute and try opening level again - Command is "open" (open provided level) or "close" (close it). Second item is test name as list - """ - relation, relative_path = self._calculate_relation(test_as_list) - if relation == 'same': - return # Opening same level? - if relation == 'child': - # If one level -- open new level gracefully - if len(relative_path) == 1: - self._add_new_node(relative_path[0]) - func_to_open() - return None - else: - # Open previous level - return "open", self.current_branch + relative_path[0:1] - if relation == "sibling": - if self.current_branch: - # Different tree, close whole branch - return "close", self.current_branch - else: - return None - if relation == 'parent': - # Opening parent? Insane - pass - - def level_closed(self, test_as_list, func_to_close): - """ - To be called on test end or failure. - - See level_opened doc. - """ - relation, relative_path = self._calculate_relation(test_as_list) - if relation == 'same': - # Closing current level - func_to_close() - self.current_branch.pop() - if relation == 'child': - return None - - if relation == 'sibling': - pass - if relation == 'parent': - return "close", self.current_branch + self.parallel = "JB_USE_PARALLEL_TREE_MANAGER" in os.environ + self._manager_imp = None @property - def parent_branch(self): - return self.current_branch[:-1] if self.current_branch else None + def manager(self): + if not self._manager_imp: + self._fill_manager() + return self._manager_imp + + def _fill_manager(self): + if self.parallel: + from _jb_parallel_tree_manager import ParallelTreeManager + self._manager_imp = ParallelTreeManager() + else: + from _jb_serial_tree_manager import SerialTreeManager + self._manager_imp = SerialTreeManager() - def _get_node_id(self, branch): - return self._node_ids_dict[".".join(branch)] - @property - def node_ids(self): - """ +_TREE_MANAGER_HOLDER = _TreeManagerHolder() - :return: (current_node_id, parent_node_id) - """ - current = self._get_node_id(self.current_branch) - parent = self._get_node_id(self.parent_branch) if self.parent_branch else "0" - return str(current), str(parent) - def close_all(self): - if not self.current_branch: - return None - return "close", self.current_branch +def set_parallel_mode(): + _TREE_MANAGER_HOLDER.parallel = True + +def is_parallel_mode(): + return _TREE_MANAGER_HOLDER.parallel -TREE_MANAGER = _TreeManager() +# Monkeypatching TC _old_service_messages = messages.TeamcityServiceMessages PARSE_FUNC = None @@ -165,9 +78,9 @@ class NewTeamcityServiceMessages(_old_service_messages): _latest_subtest_result = None - + def message(self, messageName, **properties): - if messageName in set(["enteredTheMatrix", "testCount"]): + if messageName in {"enteredTheMatrix", "testCount"}: _old_service_messages.message(self, messageName, **properties) return @@ -187,13 +100,13 @@ _old_service_messages.message(self, messageName, **properties) return + current, parent = _TREE_MANAGER_HOLDER.manager.get_node_ids(properties["name"]) # Shortcut for name try: properties["name"] = str(properties["name"]).split(".")[-1] except IndexError: pass - current, parent = TREE_MANAGER.node_ids properties["nodeId"] = str(current) properties["parentNodeId"] = str(parent) @@ -236,8 +149,8 @@ return # closing subtest - test_name = ".".join(TREE_MANAGER.current_branch) - if self._latest_subtest_result in set(["Failure", "Error"]): + test_name = ".".join(_TREE_MANAGER_HOLDER.manager.current_branch) + if self._latest_subtest_result in {"Failure", "Error"}: self.testFailed(test_name) if self._latest_subtest_result == "Skip": self.testIgnored(test_name) @@ -246,7 +159,7 @@ self._latest_subtest_result = None def subTestBlockOpened(self, name, subTestResult, flowId=None): - self.testStarted(".".join(TREE_MANAGER.current_branch + [name])) + self.testStarted(".".join(_TREE_MANAGER_HOLDER.manager.current_branch + [name])) self._latest_subtest_result = subTestResult def testStarted(self, testName, captureStandardOutput=None, flowId=None, is_suite=False, metainfo=None): @@ -255,15 +168,15 @@ def _write_start_message(): # testName, captureStandardOutput, flowId - args = {"name": testName, "captureStandardOutput": captureStandardOutput, "metainfo":metainfo} + args = {"name": testName, "captureStandardOutput": captureStandardOutput, "metainfo": metainfo} if is_suite: self.message("testSuiteStarted", **args) else: self.message("testStarted", **args) - commands = TREE_MANAGER.level_opened(self._test_to_list(testName), _write_start_message) + commands = _TREE_MANAGER_HOLDER.manager.level_opened(self._test_to_list(testName), _write_start_message) if commands: - self.do_command(commands[0], commands[1]) + self.do_commands(commands) self.testStarted(testName, captureStandardOutput, metainfo=metainfo) def testFailed(self, testName, message='', details='', flowId=None, comparison_failure=None): @@ -275,7 +188,7 @@ def _write_finished_message(): # testName, captureStandardOutput, flowId - current, parent = TREE_MANAGER.node_ids + current, parent = _TREE_MANAGER_HOLDER.manager.get_node_ids(testName) args = {"nodeId": current, "parentNodeId": parent, "name": testName} # TODO: Doc copy/paste with parent, extract @@ -286,36 +199,29 @@ args["duration"] = str(duration_ms) if is_suite: + if is_parallel_mode(): + del args["duration"] self.message("testSuiteFinished", **args) else: self.message("testFinished", **args) - commands = TREE_MANAGER.level_closed(self._test_to_list(testName), _write_finished_message) + commands = _TREE_MANAGER_HOLDER.manager.level_closed(self._test_to_list(testName), _write_finished_message) if commands: - self.do_command(commands[0], commands[1]) + self.do_commands(commands) self.testFinished(testName, testDuration) - def do_command(self, command, test): + def do_commands(self, commands): """ Executes commands, returned by level_closed and level_opened """ - test_name = ".".join(test) - # By executing commands we open or close suites(branches) since tests(leaves) are always reported by runner - if command == "open": - self.testStarted(test_name, is_suite=True) - else: - self.testFinished(test_name, is_suite=True) - - def close_all(self): - """ - - Closes all tests - """ - commands = TREE_MANAGER.close_all() - if commands: - self.do_command(commands[0], commands[1]) - self.close_all() + for command, test in commands: + test_name = ".".join(test) + # By executing commands we open or close suites(branches) since tests(leaves) are always reported by runner + if command == "open": + self.testStarted(test_name, is_suite=True) + else: + self.testFinished(test_name, is_suite=True) messages.TeamcityServiceMessages = NewTeamcityServiceMessages @@ -353,13 +259,25 @@ def jb_start_tests(): """ - Parses arguments, starts protocol and returns tuple of arguments + Parses arguments, starts protocol and fixes syspath and returns tuple of arguments + """ + path, targets, additional_args = parse_arguments() + start_protocol() + return path, targets, additional_args + + +def start_protocol(): + properties = {"durationStrategy": "manual"} if is_parallel_mode() else dict() + NewTeamcityServiceMessages().message('enteredTheMatrix', **properties) + + +def parse_arguments(): + """ + Parses arguments, fixes syspath and returns tuple of arguments :return: (string with path or None, list of targets or None, list of additional arguments) - :param func_to_parse function that accepts each part of test name and returns list to be used instead of it. It may return list with only one element (name itself) if name is the same or split names to several parts """ - # Handle additional args after -- additional_args = [] try: @@ -369,12 +287,10 @@ except ValueError: pass utils = _jb_utils.VersionAgnosticUtils() - namespace = utils.get_options( _jb_utils.OptionDescription('--path', 'Path to file or folder to run'), _jb_utils.OptionDescription('--target', 'Python target to run', "append")) del sys.argv[1:] # Remove all args - NewTeamcityServiceMessages().message('enteredTheMatrix') # PyCharm helpers dir is first dir in sys.path because helper is launched. # But sys.path should be same as when launched with test runner directly @@ -386,13 +302,6 @@ return namespace.path, namespace.target, additional_args -def _close_all_tests(): - NewTeamcityServiceMessages().close_all() - - -atexit.register(_close_all_tests) - - def jb_doc_args(framework_name, args): """ Runner encouraged to report its arguments to user with aid of this function diff -Nru pycharm-2018.3.5/helpers/pycharm/_jb_serial_tree_manager.py pycharm-2019.1/helpers/pycharm/_jb_serial_tree_manager.py --- pycharm-2018.3.5/helpers/pycharm/_jb_serial_tree_manager.py 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm/_jb_serial_tree_manager.py 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,112 @@ +# coding=utf-8 + + +class SerialTreeManager(object): + """ + Manages output tree by building it from flat test names. + """ + + def __init__(self): + super(SerialTreeManager, self).__init__() + # Currently active branch as list. New nodes go to this branch + self.current_branch = [] + # node unique name to its nodeId + self._node_ids_dict = {} + # Node id mast be incremented for each new branch + self._max_node_id = 0 + + def _calculate_relation(self, branch_as_list): + """ + Get relation of branch_as_list to current branch. + :return: tuple. First argument could be: "same", "child", "parent" or "sibling"(need to start new tree) + Second argument is relative path from current branch to child if argument is child + """ + if branch_as_list == self.current_branch: + return "same", None + + hierarchy_name_len = len(branch_as_list) + current_branch_len = len(self.current_branch) + + if hierarchy_name_len > current_branch_len and branch_as_list[0:current_branch_len] == self.current_branch: + return "child", branch_as_list[current_branch_len:] + + if hierarchy_name_len < current_branch_len and self.current_branch[0:hierarchy_name_len] == branch_as_list: + return "parent", None + + return "sibling", None + + def _add_new_node(self, new_node_name): + """ + Adds new node to branch + """ + self.current_branch.append(new_node_name) + self._max_node_id += 1 + self._node_ids_dict[".".join(self.current_branch)] = self._max_node_id + + def level_opened(self, test_as_list, func_to_open): + """ + To be called on test start. + + :param test_as_list: test name splitted as list + :param func_to_open: func to be called if test can open new level + :return: None if new level opened, or tuple of command client should execute and try opening level again + Command is "open" (open provided level) or "close" (close it). Second item is test name as list + """ + relation, relative_path = self._calculate_relation(test_as_list) + if relation == 'same': + return # Opening same level? + if relation == 'child': + # If one level -- open new level gracefully + if len(relative_path) == 1: + self._add_new_node(relative_path[0]) + func_to_open() + return None + else: + # Open previous level + return [("open", self.current_branch + relative_path[0:1])] + if relation == "sibling": + if self.current_branch: + # Different tree, close whole branch + return [("close", self.current_branch)] + else: + return None + if relation == 'parent': + # Opening parent? Insane + pass + + def level_closed(self, test_as_list, func_to_close): + """ + To be called on test end or failure. + + See level_opened doc. + """ + relation, relative_path = self._calculate_relation(test_as_list) + if relation == 'same': + # Closing current level + func_to_close() + self.current_branch.pop() + if relation == 'child': + return None + + if relation == 'sibling': + pass + if relation == 'parent': + return [("close", self.current_branch)] + + @property + def parent_branch(self): + return self.current_branch[:-1] if self.current_branch else None + + def _get_node_id(self, branch): + return self._node_ids_dict[".".join(branch)] + + # Part of contract + # noinspection PyUnusedLocal + def get_node_ids(self, test_name): + """ + + :return: (current_node_id, parent_node_id) + """ + current = self._get_node_id(self.current_branch) + parent = self._get_node_id(self.parent_branch) if self.parent_branch else "0" + return str(current), str(parent) diff -Nru pycharm-2018.3.5/helpers/pycharm/_jb_tox_runner.py pycharm-2019.1/helpers/pycharm/_jb_tox_runner.py --- pycharm-2018.3.5/helpers/pycharm/_jb_tox_runner.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm/_jb_tox_runner.py 2019-03-19 14:23:58.000000000 +0000 @@ -91,7 +91,7 @@ class _PyTest(object): def fix(self, command, bin): - if command[0] != "pytest": + if command[0] not in ["pytest", "py.test"]: return None return [bin, os.path.join(helpers_dir, "pytestrunner.py"), "-p", "pytest_teamcity"] + command[1:] diff -Nru pycharm-2018.3.5/helpers/pycharm/teamcity/unittestpy.py pycharm-2019.1/helpers/pycharm/teamcity/unittestpy.py --- pycharm-2018.3.5/helpers/pycharm/teamcity/unittestpy.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm/teamcity/unittestpy.py 2019-03-19 14:23:58.000000000 +0000 @@ -201,11 +201,12 @@ if is_string(err): details = err - elif get_class_fullname(err) == "twisted.python.failure.Failure": - details = err.getTraceback() else: - frames_to_skip_from_tail = 2 if diff_failed else 0 - details = convert_error_to_string(err, frames_to_skip_from_tail) + try: + details = err.getTraceback() + except AttributeError: + frames_to_skip_from_tail = 2 if diff_failed else 0 + details = convert_error_to_string(err, frames_to_skip_from_tail) subtest_failures = self.get_subtest_failure(test_id) if subtest_failures: diff -Nru pycharm-2018.3.5/helpers/pycharm_display/datalore/display/display_.py pycharm-2019.1/helpers/pycharm_display/datalore/display/display_.py --- pycharm-2018.3.5/helpers/pycharm_display/datalore/display/display_.py 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_display/datalore/display/display_.py 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,44 @@ +import json +import os +import socket +import struct + +from .supported_data_type import _standardize_value + +__all__ = ['display'] + +HOST = 'localhost' +PORT = os.getenv("PYCHARM_DISPLAY_PORT") +PORT = int(PORT) if PORT is not None else None +PORT = PORT if PORT != -1 else None + + +def display(data): + if PORT and data is not None: + repr_display_attr = getattr(data, '_repr_display_', None) + if callable(repr_display_attr): + message_spec = repr_display_attr() + assert len(message_spec) == 2, 'Tuple length expected is 2 but was %d' % len(message_spec) + + message_spec = _standardize_value(message_spec) + _send_display_message({ + 'type': message_spec[0], + 'body': message_spec[1] + }) + return + + # just print to python console + print(repr(data)) + + +def _send_display_message(message_spec): + serialized = json.dumps(message_spec) + buffer = serialized.encode() + try: + sock = socket.socket() + sock.connect((HOST, PORT)) + sock.send(struct.pack('>i', len(buffer))) + sock.send(buffer) + except OSError as _: + # nothing bad. It just means, that our tool window doesn't run yet + pass diff -Nru pycharm-2018.3.5/helpers/pycharm_display/datalore/display/__init__.py pycharm-2019.1/helpers/pycharm_display/datalore/display/__init__.py --- pycharm-2018.3.5/helpers/pycharm_display/datalore/display/__init__.py 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_display/datalore/display/__init__.py 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,3 @@ +from .display_ import * + +__all__ = display_.__all__ diff -Nru pycharm-2018.3.5/helpers/pycharm_display/datalore/display/supported_data_type.py pycharm-2019.1/helpers/pycharm_display/datalore/display/supported_data_type.py --- pycharm-2018.3.5/helpers/pycharm_display/datalore/display/supported_data_type.py 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_display/datalore/display/supported_data_type.py 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,81 @@ +import json +from abc import abstractmethod +from datetime import datetime + +try: + import numpy +except ImportError: + numpy = None + +try: + import pandas +except ImportError: + pandas = None + + +# Parameter 'value' can also be pandas.DataFrame +def _standardize_dict(value): + result = {} + for k, v in value.items(): + result[_standardize_value(k)] = _standardize_value(v) + + return result + + +def is_int(v): + return isinstance(v, int) or (numpy and isinstance(v, numpy.integer)) + + +def is_float(v): + return isinstance(v, float) or (numpy and isinstance(v, numpy.floating)) + + +def is_number(v): + return is_int(v) or is_float(v) + + +def is_shapely_geometry(v): + try: + from shapely.geometry.base import BaseGeometry + return isinstance(v, BaseGeometry) + except ImportError: + return False + + +def _standardize_value(v): + if v is None: + return v + if isinstance(v, bool): + return bool(v) + if is_int(v): + return int(v) + if isinstance(v, str): + return str(v) + if is_float(v): + return float(v) + if isinstance(v, dict) or (pandas and isinstance(v, pandas.DataFrame)): + return _standardize_dict(v) + if isinstance(v, list): + return [_standardize_value(elem) for elem in v] + if isinstance(v, tuple): + return tuple(_standardize_value(elem) for elem in v) + if (numpy and isinstance(v, numpy.ndarray)) or (pandas and isinstance(v, pandas.Series)): + return _standardize_value(v.tolist()) + if isinstance(v, datetime): + return v.timestamp() * 1000 # convert from second to millisecond + if isinstance(v, CanToDataFrame): + return _standardize_dict(v.to_data_frame()) + if is_shapely_geometry(v): + from shapely.geometry import mapping + return json.dumps(mapping(v)) + try: + return repr(v) + except Exception as e: + # TODO This needs a test case; Also exception should be logged somewhere + raise Exception('Unsupported type: {0}({1})'.format(v, type(v))) + + +class CanToDataFrame: + @abstractmethod + def to_data_frame(self): # -> pandas.DataFrame + pass diff -Nru pycharm-2018.3.5/helpers/pycharm_display/datalore/__init__.py pycharm-2019.1/helpers/pycharm_display/datalore/__init__.py --- pycharm-2018.3.5/helpers/pycharm_display/datalore/__init__.py 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_display/datalore/__init__.py 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,4 @@ +from pkgutil import extend_path + +# To handle the situation when 'datalore' package is shared my modules in different locations. +__path__ = extend_path(__path__, __name__) diff -Nru pycharm-2018.3.5/helpers/pycharm_display/tests/display/test_supported_data_type.py pycharm-2019.1/helpers/pycharm_display/tests/display/test_supported_data_type.py --- pycharm-2018.3.5/helpers/pycharm_display/tests/display/test_supported_data_type.py 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_display/tests/display/test_supported_data_type.py 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,65 @@ +from datetime import datetime + +import numpy as np +import pandas as pd +import pytest + +from datalore.display.supported_data_type import _standardize_dict +from datalore.display.supported_data_type import _standardize_value + + +@pytest.mark.parametrize('value, expected, result_type', [ + (np.array([1, 2]), [1, 2], list), + (pd.Series([1, 2]), [1, 2], list), + (np.float64(0.25), 0.25, float), + (('a', 1), ('a', 1), tuple), +], ids=['np.array', 'pd.Series', 'np.float', 'tuple']) +def test_standardize_simple_values(value, expected, result_type): + check_standardization(value, expected, result_type) + + +def test_datetime_standardization(): + value = datetime(2000, 1, 1) + expected = value.timestamp() * 1000 + check_standardization(value, expected, float) + + +def check_standardization(value, expected, result_type): + standardized_np_array = _standardize_value(value) + assert standardized_np_array == expected + assert type(standardized_np_array) == result_type # we should the check exact type, not inheritance + + +class TestStandardizeDictionaries: + # noinspection PyAttributeOutsideInit + @pytest.fixture(autouse=True) + def setup(self): + self.dictionary = {'column': [1, 2, 3]} + + def test_standardize_nested_df(self): + nested_df = {'a': pd.DataFrame(self.dictionary)} + standardized = _standardize_dict(nested_df) + assert isinstance(standardized, dict) + self.check_dictionary(standardized['a']) + + def test_standardize_df(self): + df = pd.DataFrame(self.dictionary) + standardized = _standardize_dict(df) + self.check_dictionary(standardized) + + def test_standardize_several_nested_objects(self): + nested_df = { + 'a': self.dictionary.copy(), + 'b': pd.Series([1, 2, 3]) + } + standardized = _standardize_dict(nested_df) + assert type(standardized) == dict + self.check_dictionary(standardized['a']) + + assert type(standardized['b']) == list + assert standardized['b'] == [1, 2, 3] + + def check_dictionary(self, value): + assert value == self.dictionary + assert type(value) == dict + assert type(value['column']) == list diff -Nru pycharm-2018.3.5/helpers/pycharm_generator_utils/constants.py pycharm-2019.1/helpers/pycharm_generator_utils/constants.py --- pycharm-2018.3.5/helpers/pycharm_generator_utils/constants.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_generator_utils/constants.py 2019-03-19 14:23:58.000000000 +0000 @@ -6,7 +6,7 @@ import time # !!! Don't forget to update VERSION and required_gen_version if necessary !!! -VERSION = "1.146" +VERSION = "1.147" OUT_ENCODING = 'utf-8' @@ -224,7 +224,7 @@ ########################### parsing ########################################################### if version[0] < 3: - from pycharm_generator_utils.pyparsing import * + from pycharm_generator_utils.pyparsing_py2 import * else: #noinspection PyUnresolvedReferences from pycharm_generator_utils.pyparsing_py3 import * @@ -798,4 +798,5 @@ CLASS_ATTR_BLACKLIST = [ 'google.protobuf.pyext._message.Message._extensions_by_name', 'google.protobuf.pyext._message.Message._extensions_by_number', -] \ No newline at end of file + 'panda3d.core.ExecutionEnvironment.environment_variables', +] diff -Nru pycharm-2018.3.5/helpers/pycharm_generator_utils/module_redeclarator.py pycharm-2019.1/helpers/pycharm_generator_utils/module_redeclarator.py --- pycharm-2018.3.5/helpers/pycharm_generator_utils/module_redeclarator.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_generator_utils/module_redeclarator.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,6 +1,3 @@ -import keyword -import os - from pycharm_generator_utils.util_methods import * is_pregenerated = os.getenv("IS_PREGENERATED_SKELETONS", None) @@ -315,7 +312,7 @@ real_value = "None" else: notice = " # (!) forward: %s, real value is %r" % (found_name, real_value) - if SANE_REPR_RE.match(real_value): + if SANE_REPR_RE.match(real_value) and is_valid_expr(real_value): out(indent, prefix, real_value, postfix, notice) else: if not found_name: diff -Nru pycharm-2018.3.5/helpers/pycharm_generator_utils/pyparsing.py pycharm-2019.1/helpers/pycharm_generator_utils/pyparsing.py --- pycharm-2018.3.5/helpers/pycharm_generator_utils/pyparsing.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_generator_utils/pyparsing.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,3737 +0,0 @@ -# module pyparsing.py -# -# Copyright (c) 2003-2009 Paul T. McGuire -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -from __future__ import generators - -__doc__ = \ -""" -pyparsing module - Classes and methods to define and execute parsing grammars - -The pyparsing module is an alternative approach to creating and executing simple grammars, -vs. the traditional lex/yacc approach, or the use of regular expressions. With pyparsing, you -don't need to learn a new syntax for defining grammars or matching expressions - the parsing module -provides a library of classes that you use to construct the grammar directly in Python. - -Here is a program to parse "Hello, World!" (or any greeting of the form ", !"):: - - from pyparsing import Word, alphas - - # define grammar of a greeting - greet = Word( alphas ) + "," + Word( alphas ) + "!" - - hello = "Hello, World!" - print hello, "->", greet.parseString( hello ) - -The program outputs the following:: - - Hello, World! -> ['Hello', ',', 'World', '!'] - -The Python representation of the grammar is quite readable, owing to the self-explanatory -class names, and the use of '+', '|' and '^' operators. - -The parsed results returned from parseString() can be accessed as a nested list, a dictionary, or an -object with named attributes. - -The pyparsing module handles some of the problems that are typically vexing when writing text parsers: - - extra or missing whitespace (the above program will also handle "Hello,World!", "Hello , World !", etc.) - - quoted strings - - embedded comments -""" - -__version__ = "1.5.2 patch 2.2" -__versionTime__ = "17 February 2009 19:45" -__author__ = "Paul McGuire , patched by dmitry.cheryasov@jetbrains.com" - -import string -from weakref import ref as wkref -import copy -import sys -import warnings -import re -import sre_constants -#~ sys.stderr.write( "testing pyparsing module, version %s, %s\n" % (__version__,__versionTime__ ) ) - -__all__ = [ -'And', 'CaselessKeyword', 'CaselessLiteral', 'CharsNotIn', 'Combine', 'Dict', 'Each', 'Empty', -'FollowedBy', 'Forward', 'GoToColumn', 'Group', 'Keyword', 'LineEnd', 'LineStart', 'Literal', -'MatchFirst', 'NoMatch', 'NotAny', 'OneOrMore', 'OnlyOnce', 'Optional', 'Or', -'ParseBaseException', 'ParseElementEnhance', 'ParseException', 'ParseExpression', 'ParseFatalException', -'ParseResults', 'ParseSyntaxException', 'ParserElement', 'QuotedString', 'RecursiveGrammarException', -'Regex', 'SkipTo', 'StringEnd', 'StringStart', 'Suppress', 'Token', 'TokenConverter', 'Upcase', -'White', 'Word', 'WordEnd', 'WordStart', 'ZeroOrMore', -'alphanums', 'alphas', 'alphas8bit', 'anyCloseTag', 'anyOpenTag', 'cStyleComment', 'col', -'commaSeparatedList', 'commonHTMLEntity', 'countedArray', 'cppStyleComment', 'dblQuotedString', -'dblSlashComment', 'delimitedList', 'dictOf', 'downcaseTokens', 'empty', 'getTokensEndLoc', 'hexnums', -'htmlComment', 'javaStyleComment', 'keepOriginalText', 'line', 'lineEnd', 'lineStart', 'lineno', -'makeHTMLTags', 'makeXMLTags', 'matchOnlyAtCol', 'matchPreviousExpr', 'matchPreviousLiteral', -'nestedExpr', 'nullDebugAction', 'nums', 'oneOf', 'opAssoc', 'operatorPrecedence', 'printables', -'punc8bit', 'pythonStyleComment', 'quotedString', 'removeQuotes', 'replaceHTMLEntity', -'replaceWith', 'restOfLine', 'sglQuotedString', 'srange', 'stringEnd', -'stringStart', 'traceParseAction', 'unicodeString', 'upcaseTokens', 'withAttribute', -'indentedBlock', 'originalTextFor', -] - -version_info = sys.version_info - -""" -Detect if we are running version 3.X and make appropriate changes -Robert A. Clark -""" -if version_info[0] > 2: - _PY3K = True - _MAX_INT = sys.maxsize - basestring = str -else: - _PY3K = False - _MAX_INT = sys.maxint - -if version_info[0] == 2 and version_info[1] < 4: - _BEFORE_24 = True # before Python 2.4 - INT_OR_SLICE = (int, type(slice(1, 2))) - - def slice_indices(a_slice, maxlen): - start = a_slice.start or 0 - if start > maxlen: - start = maxlen - stop = a_slice.stop - if stop is None or maxlen < stop: - stop = maxlen - return (start, stop, a_slice.step or 1) -else: - _BEFORE_24 = False - INT_OR_SLICE = (int, slice) - slice_indices = slice.indices - - -if not _PY3K: - def _ustr(obj): - """Drop-in replacement for str(obj) that tries to be Unicode friendly. It first tries - str(obj). If that fails with a UnicodeEncodeError, then it tries unicode(obj). It - then < returns the unicode object | encodes it with the default encoding | ... >. - """ - if isinstance(obj,unicode): - return obj - - try: - # If this works, then _ustr(obj) has the same behaviour as str(obj), so - # it won't break any existing code. - return str(obj) - - except UnicodeEncodeError: - # The Python docs (http://docs.python.org/ref/customization.html#l2h-182) - # state that "The return value must be a string object". However, does a - # unicode object (being a subclass of basestring) count as a "string - # object"? - # If so, then return a unicode object: - return unicode(obj) - # Else encode it... but how? There are many choices... :) - # Replace unprintables with escape codes? - #return unicode(obj).encode(sys.getdefaultencoding(), 'backslashreplace_errors') - # Replace unprintables with question marks? - #return unicode(obj).encode(sys.getdefaultencoding(), 'replace') - # ... -else: - _ustr = str - unichr = chr - -if not _PY3K: - def _str2dict(strg): - return dict( [(c,0) for c in strg] ) -else: - _str2dict = set - -def _xml_escape(data): - """Escape &, <, >, ", ', etc. in a string of data.""" - - # ampersand must be replaced first - from_symbols = '&><"\'' - to_symbols = ['&'+s+';' for s in "amp gt lt quot apos".split()] - for from_,to_ in zip(from_symbols, to_symbols): - data = data.replace(from_, to_) - return data - -class _Constants(object): - pass - -if not _PY3K: - alphas = string.lowercase + string.uppercase -else: - alphas = string.ascii_lowercase + string.ascii_uppercase -nums = string.digits -hexnums = nums + "ABCDEFabcdef" -alphanums = alphas + nums -_bslash = chr(92) -printables = "".join( [ c for c in string.printable if c not in string.whitespace ] ) - -class ParseBaseException(Exception): - """base exception class for all parsing runtime exceptions""" - # Performance tuning: we construct a *lot* of these, so keep this - # constructor as small and fast as possible - def __init__( self, pstr, loc=0, msg=None, elem=None ): - self.loc = loc - if msg is None: - self.msg = pstr - self.pstr = "" - else: - self.msg = msg - self.pstr = pstr - self.parserElement = elem - - def __getattr__( self, aname ): - """supported attributes by name are: - - lineno - returns the line number of the exception text - - col - returns the column number of the exception text - - line - returns the line containing the exception text - """ - if( aname == "lineno" ): - return lineno( self.loc, self.pstr ) - elif( aname in ("col", "column") ): - return col( self.loc, self.pstr ) - elif( aname == "line" ): - return line( self.loc, self.pstr ) - else: - raise AttributeError(aname) - - def __str__( self ): - return "%s (at char %d), (line:%d, col:%d)" % \ - ( self.msg, self.loc, self.lineno, self.column ) - def __repr__( self ): - return _ustr(self) - def markInputline( self, markerString = ">!<" ): - """Extracts the exception line from the input string, and marks - the location of the exception with a special symbol. - """ - line_str = self.line - line_column = self.column - 1 - if markerString: - line_str = "".join( [line_str[:line_column], - markerString, line_str[line_column:]]) - return line_str.strip() - def __dir__(self): - return "loc msg pstr parserElement lineno col line " \ - "markInputLine __str__ __repr__".split() - -class ParseException(ParseBaseException): - """exception thrown when parse expressions don't match class; - supported attributes by name are: - - lineno - returns the line number of the exception text - - col - returns the column number of the exception text - - line - returns the line containing the exception text - """ - pass - -class ParseFatalException(ParseBaseException): - """user-throwable exception thrown when inconsistent parse content - is found; stops all parsing immediately""" - pass - -class ParseSyntaxException(ParseFatalException): - """just like ParseFatalException, but thrown internally when an - ErrorStop indicates that parsing is to stop immediately because - an unbacktrackable syntax error has been found""" - def __init__(self, pe): - super(ParseSyntaxException, self).__init__( - pe.pstr, pe.loc, pe.msg, pe.parserElement) - -#~ class ReparseException(ParseBaseException): - #~ """Experimental class - parse actions can raise this exception to cause - #~ pyparsing to reparse the input string: - #~ - with a modified input string, and/or - #~ - with a modified start location - #~ Set the values of the ReparseException in the constructor, and raise the - #~ exception in a parse action to cause pyparsing to use the new string/location. - #~ Setting the values as None causes no change to be made. - #~ """ - #~ def __init_( self, newstring, restartLoc ): - #~ self.newParseText = newstring - #~ self.reparseLoc = restartLoc - -class RecursiveGrammarException(Exception): - """exception thrown by validate() if the grammar could be improperly recursive""" - def __init__( self, parseElementList ): - self.parseElementTrace = parseElementList - - def __str__( self ): - return "RecursiveGrammarException: %s" % self.parseElementTrace - -class _ParseResultsWithOffset(object): - def __init__(self,p1,p2): - self.tup = (p1,p2) - def __getitem__(self,i): - return self.tup[i] - def __repr__(self): - return repr(self.tup) - def setOffset(self,i): - self.tup = (self.tup[0],i) - -class ParseResults(object): - """Structured parse results, to provide multiple means of access to the parsed data: - - as a list (len(results)) - - by list index (results[0], results[1], etc.) - - by attribute (results.) - """ - __slots__ = ( "__toklist", "__tokdict", "__doinit", "__name", "__parent", "__accumNames", "__weakref__" ) - def __new__(cls, toklist, name=None, asList=True, modal=True ): - if isinstance(toklist, cls): - return toklist - retobj = object.__new__(cls) - retobj.__doinit = True - return retobj - - # Performance tuning: we construct a *lot* of these, so keep this - # constructor as small and fast as possible - def __init__( self, toklist, name=None, asList=True, modal=True ): - if self.__doinit: - self.__doinit = False - self.__name = None - self.__parent = None - self.__accumNames = {} - if isinstance(toklist, list): - self.__toklist = toklist[:] - else: - self.__toklist = [toklist] - self.__tokdict = dict() - - if name: - if not modal: - self.__accumNames[name] = 0 - if isinstance(name,int): - name = _ustr(name) # will always return a str, but use _ustr for consistency - self.__name = name - if not toklist in (None,'',[]): - if isinstance(toklist,basestring): - toklist = [ toklist ] - if asList: - if isinstance(toklist,ParseResults): - self[name] = _ParseResultsWithOffset(toklist.copy(),0) - else: - self[name] = _ParseResultsWithOffset(ParseResults(toklist[0]),0) - self[name].__name = name - else: - try: - self[name] = toklist[0] - except (KeyError,TypeError,IndexError): - self[name] = toklist - - def __getitem__( self, i ): - if isinstance( i, INT_OR_SLICE ): - return self.__toklist[i] - else: - if i not in self.__accumNames: - return self.__tokdict[i][-1][0] - else: - return ParseResults([ v[0] for v in self.__tokdict[i] ]) - - def __setitem__( self, k, v ): - if isinstance(v,_ParseResultsWithOffset): - self.__tokdict[k] = self.__tokdict.get(k,list()) + [v] - sub = v[0] - elif isinstance(k,int): - self.__toklist[k] = v - sub = v - else: - self.__tokdict[k] = self.__tokdict.get(k,list()) + [_ParseResultsWithOffset(v,0)] - sub = v - if isinstance(sub,ParseResults): - sub.__parent = wkref(self) - - def __delitem__( self, i ): - if isinstance(i, INT_OR_SLICE): - mylen = len( self.__toklist ) - del self.__toklist[i] - - # convert int to slice - if isinstance(i, int): - if i < 0: - i += mylen - i = slice(i, i+1) - # get removed indices - removed = list(range(*slice_indices(i, mylen))) - removed.reverse() - # fixup indices in token dictionary - for name in self.__tokdict: - occurrences = self.__tokdict[name] - for j in removed: - for k, (value, position) in enumerate(occurrences): - occurrences[k] = _ParseResultsWithOffset(value, position - (position > j)) - else: - del self.__tokdict[i] - - def __contains__( self, k ): - return k in self.__tokdict - - def __len__( self ): return len( self.__toklist ) - def __bool__(self): return len( self.__toklist ) > 0 - __nonzero__ = __bool__ - def __iter__( self ): return iter( self.__toklist ) - def __reversed__( self ): return iter( reversed(self.__toklist) ) - def keys( self ): - """Returns all named result keys.""" - return self.__tokdict.keys() - - def pop( self, index=-1 ): - """Removes and returns item at specified index (default=last). - Will work with either numeric indices or dict-key indicies.""" - ret = self[index] - del self[index] - return ret - - def get(self, key, defaultValue=None): - """Returns named result matching the given key, or if there is no - such name, then returns the given defaultValue or None if no - defaultValue is specified.""" - if key in self: - return self[key] - else: - return defaultValue - - def insert( self, index, insStr ): - self.__toklist.insert(index, insStr) - # fixup indices in token dictionary - for name in self.__tokdict: - occurrences = self.__tokdict[name] - for k, (value, position) in enumerate(occurrences): - occurrences[k] = _ParseResultsWithOffset(value, position + (position > index)) - - def items( self ): - """Returns all named result keys and values as a list of tuples.""" - return [(k,self[k]) for k in self.__tokdict] - - def values( self ): - """Returns all named result values.""" - return [ v[-1][0] for v in self.__tokdict.values() ] - - def __getattr__( self, name ): - if name not in self.__slots__: - if name in self.__tokdict: - if name not in self.__accumNames: - return self.__tokdict[name][-1][0] - else: - return ParseResults([ v[0] for v in self.__tokdict[name] ]) - else: - return "" - return None - - def __add__( self, other ): - ret = self.copy() - ret += other - return ret - - def __iadd__( self, other ): - if other.__tokdict: - offset = len(self.__toklist) - addoffset = ( lambda a: (a<0 and offset) or (a+offset) ) - otheritems = other.__tokdict.items() - otherdictitems = [(k, _ParseResultsWithOffset(v[0],addoffset(v[1])) ) - for (k,vlist) in otheritems for v in vlist] - for k,v in otherdictitems: - self[k] = v - if isinstance(v[0],ParseResults): - v[0].__parent = wkref(self) - - self.__toklist += other.__toklist - self.__accumNames.update( other.__accumNames ) - del other - return self - - def __repr__( self ): - return "(%s, %s)" % ( repr( self.__toklist ), repr( self.__tokdict ) ) - - def __str__( self ): - out = "[" - sep = "" - for i in self.__toklist: - if isinstance(i, ParseResults): - out += sep + _ustr(i) - else: - out += sep + repr(i) - sep = ", " - out += "]" - return out - - def _asStringList( self, sep='' ): - out = [] - for item in self.__toklist: - if out and sep: - out.append(sep) - if isinstance( item, ParseResults ): - out += item._asStringList() - else: - out.append( _ustr(item) ) - return out - - def asList( self ): - """Returns the parse results as a nested list of matching tokens, all converted to strings.""" - out = [] - for res in self.__toklist: - if isinstance(res,ParseResults): - out.append( res.asList() ) - else: - out.append( res ) - return out - - def asDict( self ): - """Returns the named parse results as dictionary.""" - return dict( self.items() ) - - def copy( self ): - """Returns a new copy of a ParseResults object.""" - ret = ParseResults( self.__toklist ) - ret.__tokdict = self.__tokdict.copy() - ret.__parent = self.__parent - ret.__accumNames.update( self.__accumNames ) - ret.__name = self.__name - return ret - - def asXML( self, doctag=None, namedItemsOnly=False, indent="", formatted=True ): - """Returns the parse results as XML. Tags are created for tokens and lists that have defined results names.""" - nl = "\n" - out = [] - namedItems = dict( [ (v[1],k) for (k,vlist) in self.__tokdict.items() - for v in vlist ] ) - nextLevelIndent = indent + " " - - # collapse out indents if formatting is not desired - if not formatted: - indent = "" - nextLevelIndent = "" - nl = "" - - selfTag = None - if doctag is not None: - selfTag = doctag - else: - if self.__name: - selfTag = self.__name - - if not selfTag: - if namedItemsOnly: - return "" - else: - selfTag = "ITEM" - - out += [ nl, indent, "<", selfTag, ">" ] - - worklist = self.__toklist - for i,res in enumerate(worklist): - if isinstance(res,ParseResults): - if i in namedItems: - out += [ res.asXML(namedItems[i], - namedItemsOnly and doctag is None, - nextLevelIndent, - formatted)] - else: - out += [ res.asXML(None, - namedItemsOnly and doctag is None, - nextLevelIndent, - formatted)] - else: - # individual token, see if there is a name for it - resTag = None - if i in namedItems: - resTag = namedItems[i] - if not resTag: - if namedItemsOnly: - continue - else: - resTag = "ITEM" - xmlBodyText = _xml_escape(_ustr(res)) - out += [ nl, nextLevelIndent, "<", resTag, ">", - xmlBodyText, - "" ] - - out += [ nl, indent, "" ] - return "".join(out) - - def __lookup(self,sub): - for k,vlist in self.__tokdict.items(): - for v,loc in vlist: - if sub is v: - return k - return None - - def getName(self): - """Returns the results name for this token expression.""" - if self.__name: - return self.__name - elif self.__parent: - par = self.__parent() - if par: - return par.__lookup(self) - else: - return None - elif (len(self) == 1 and - len(self.__tokdict) == 1 and - self.__tokdict.values()[0][0][1] in (0,-1)): - return self.__tokdict.keys()[0] - else: - return None - - def dump(self,indent='',depth=0): - """Diagnostic method for listing out the contents of a ParseResults. - Accepts an optional indent argument so that this string can be embedded - in a nested display of other data.""" - out = [] - out.append( indent+_ustr(self.asList()) ) - keys = self.items() - keys.sort() - for k,v in keys: - if out: - out.append('\n') - out.append( "%s%s- %s: " % (indent,(' '*depth), k) ) - if isinstance(v,ParseResults): - if v.keys(): - #~ out.append('\n') - out.append( v.dump(indent,depth+1) ) - #~ out.append('\n') - else: - out.append(_ustr(v)) - else: - out.append(_ustr(v)) - #~ out.append('\n') - return "".join(out) - - # add support for pickle protocol - def __getstate__(self): - return ( self.__toklist, - ( self.__tokdict.copy(), - self.__parent is not None and self.__parent() or None, - self.__accumNames, - self.__name ) ) - - def __setstate__(self,state): - self.__toklist = state[0] - self.__tokdict, \ - par, \ - inAccumNames, \ - self.__name = state[1] - self.__accumNames = {} - self.__accumNames.update(inAccumNames) - if par is not None: - self.__parent = wkref(par) - else: - self.__parent = None - - def __dir__(self): - return dir(super(ParseResults,self)) + self.keys() - -def col (loc,strg): - """Returns current column within a string, counting newlines as line separators. - The first column is number 1. - - Note: the default parsing behavior is to expand tabs in the input string - before starting the parsing process. See L{I{ParserElement.parseString}} for more information - on parsing strings containing s, and suggested methods to maintain a - consistent view of the parsed string, the parse location, and line and column - positions within the parsed string. - """ - return (loc} for more information - on parsing strings containing s, and suggested methods to maintain a - consistent view of the parsed string, the parse location, and line and column - positions within the parsed string. - """ - return strg.count("\n",0,loc) + 1 - -def line( loc, strg ): - """Returns the line of text containing loc within a string, counting newlines as line separators. - """ - lastCR = strg.rfind("\n", 0, loc) - nextCR = strg.find("\n", loc) - if nextCR > 0: - return strg[lastCR+1:nextCR] - else: - return strg[lastCR+1:] - -def _defaultStartDebugAction( instring, loc, expr ): - print ("Match " + _ustr(expr) + " at loc " + _ustr(loc) + "(%d,%d)" % ( lineno(loc,instring), col(loc,instring) )) - -def _defaultSuccessDebugAction( instring, startloc, endloc, expr, toks ): - print ("Matched " + _ustr(expr) + " -> " + str(toks.asList())) - -def _defaultExceptionDebugAction( instring, loc, expr, exc ): - print ("Exception raised:" + _ustr(exc)) - -def nullDebugAction(*args): - """'Do-nothing' debug action, to suppress debugging output during parsing.""" - pass - -class ParserElement(object): - """Abstract base level parser element class.""" - DEFAULT_WHITE_CHARS = " \n\t\r" - - def setDefaultWhitespaceChars( chars ): - """Overrides the default whitespace chars - """ - ParserElement.DEFAULT_WHITE_CHARS = chars - setDefaultWhitespaceChars = staticmethod(setDefaultWhitespaceChars) - - def __init__( self, savelist=False ): - self.parseAction = list() - self.failAction = None - #~ self.name = "" # don't define self.name, let subclasses try/except upcall - self.strRepr = None - self.resultsName = None - self.saveAsList = savelist - self.skipWhitespace = True - self.whiteChars = ParserElement.DEFAULT_WHITE_CHARS - self.copyDefaultWhiteChars = True - self.mayReturnEmpty = False # used when checking for left-recursion - self.keepTabs = False - self.ignoreExprs = list() - self.debug = False - self.streamlined = False - self.mayIndexError = True # used to optimize exception handling for subclasses that don't advance parse index - self.errmsg = "" - self.modalResults = True # used to mark results names as modal (report only last) or cumulative (list all) - self.debugActions = ( None, None, None ) #custom debug actions - self.re = None - self.callPreparse = True # used to avoid redundant calls to preParse - self.callDuringTry = False - - def copy( self ): - """Make a copy of this ParserElement. Useful for defining different parse actions - for the same parsing pattern, using copies of the original parse element.""" - cpy = copy.copy( self ) - cpy.parseAction = self.parseAction[:] - cpy.ignoreExprs = self.ignoreExprs[:] - if self.copyDefaultWhiteChars: - cpy.whiteChars = ParserElement.DEFAULT_WHITE_CHARS - return cpy - - if _BEFORE_24: - def __copy__(self): - # needed by copy.copy in e.g. Jython 2.2 - cpy = self.__class__.__new__(self.__class__, self.saveAsList) - cpy.__dict__.update(self.__dict__) - return cpy - - - def setName( self, name ): - """Define name for this expression, for use in debugging.""" - self.name = name - self.errmsg = "Expected " + self.name - if hasattr(self,"exception"): - self.exception.msg = self.errmsg - return self - - def setResultsName( self, name, listAllMatches=False ): - """Define name for referencing matching tokens as a nested attribute - of the returned parse results. - NOTE: this returns a *copy* of the original ParserElement object; - this is so that the client can define a basic element, such as an - integer, and reference it in multiple places with different names. - """ - newself = self.copy() - newself.resultsName = name - newself.modalResults = not listAllMatches - return newself - - def setBreak(self,breakFlag = True): - """Method to invoke the Python pdb debugger when this element is - about to be parsed. Set breakFlag to True to enable, False to - disable. - """ - if breakFlag: - _parseMethod = self._parse - def breaker(instring, loc, doActions=True, callPreParse=True): - import pdb - pdb.set_trace() - return _parseMethod( instring, loc, doActions, callPreParse ) - breaker._originalParseMethod = _parseMethod - self._parse = breaker - else: - if hasattr(self._parse,"_originalParseMethod"): - self._parse = self._parse._originalParseMethod - return self - - def _normalizeParseActionArgs( f ): - """Internal method used to decorate parse actions that take fewer than 3 arguments, - so that all parse actions can be called as f(s,l,t).""" - STAR_ARGS = 4 - - try: - restore = None - if isinstance(f,type): - restore = f - f = f.__init__ - if not _PY3K: - codeObj = f.func_code - else: - codeObj = f.code - if codeObj.co_flags & STAR_ARGS: - return f - numargs = codeObj.co_argcount - if not _PY3K: - if hasattr(f,"im_self"): - numargs -= 1 - else: - if hasattr(f,"__self__"): - numargs -= 1 - if restore: - f = restore - except AttributeError: - try: - if not _PY3K: - call_im_func_code = f.__call__.im_func.func_code - else: - call_im_func_code = f.__code__ - - # not a function, must be a callable object, get info from the - # im_func binding of its bound __call__ method - if call_im_func_code.co_flags & STAR_ARGS: - return f - numargs = call_im_func_code.co_argcount - if not _PY3K: - if hasattr(f.__call__,"im_self"): - numargs -= 1 - else: - if hasattr(f.__call__,"__self__"): - numargs -= 0 - except AttributeError: - if not _PY3K: - call_func_code = f.__call__.func_code - else: - call_func_code = f.__call__.__code__ - # not a bound method, get info directly from __call__ method - if call_func_code.co_flags & STAR_ARGS: - return f - numargs = call_func_code.co_argcount - if not _PY3K: - if hasattr(f.__call__,"im_self"): - numargs -= 1 - else: - if hasattr(f.__call__,"__self__"): - numargs -= 1 - - - #~ print ("adding function %s with %d args" % (f.func_name,numargs)) - if numargs == 3: - return f - else: - if numargs > 3: - def tmp(s,l,t): - return f(f.__call__.__self__, s,l,t) - if numargs == 2: - def tmp(s,l,t): - return f(l,t) - elif numargs == 1: - def tmp(s,l,t): - return f(t) - else: #~ numargs == 0: - def tmp(s,l,t): - return f() - try: - tmp.__name__ = f.__name__ - except (AttributeError,TypeError): - # no need for special handling if attribute doesnt exist - pass - try: - tmp.__doc__ = f.__doc__ - except (AttributeError,TypeError): - # no need for special handling if attribute doesnt exist - pass - try: - tmp.__dict__.update(f.__dict__) - except (AttributeError,TypeError): - # no need for special handling if attribute doesnt exist - pass - return tmp - _normalizeParseActionArgs = staticmethod(_normalizeParseActionArgs) - - def setParseAction( self, *fns, **kwargs ): - """Define action to perform when successfully matching parse element definition. - Parse action fn is a callable method with 0-3 arguments, called as fn(s,loc,toks), - fn(loc,toks), fn(toks), or just fn(), where: - - s = the original string being parsed (see note below) - - loc = the location of the matching substring - - toks = a list of the matched tokens, packaged as a ParseResults object - If the functions in fns modify the tokens, they can return them as the return - value from fn, and the modified list of tokens will replace the original. - Otherwise, fn does not need to return any value. - - Note: the default parsing behavior is to expand tabs in the input string - before starting the parsing process. See L{I{parseString}} for more information - on parsing strings containing s, and suggested methods to maintain a - consistent view of the parsed string, the parse location, and line and column - positions within the parsed string. - """ - self.parseAction = list(map(self._normalizeParseActionArgs, list(fns))) - self.callDuringTry = ("callDuringTry" in kwargs and kwargs["callDuringTry"]) - return self - - def addParseAction( self, *fns, **kwargs ): - """Add parse action to expression's list of parse actions. See L{I{setParseAction}}.""" - self.parseAction += list(map(self._normalizeParseActionArgs, list(fns))) - self.callDuringTry = self.callDuringTry or ("callDuringTry" in kwargs and kwargs["callDuringTry"]) - return self - - def setFailAction( self, fn ): - """Define action to perform if parsing fails at this expression. - Fail acton fn is a callable function that takes the arguments - fn(s,loc,expr,err) where: - - s = string being parsed - - loc = location where expression match was attempted and failed - - expr = the parse expression that failed - - err = the exception thrown - The function returns no value. It may throw ParseFatalException - if it is desired to stop parsing immediately.""" - self.failAction = fn - return self - - def _skipIgnorables( self, instring, loc ): - exprsFound = True - while exprsFound: - exprsFound = False - for e in self.ignoreExprs: - try: - while 1: - loc,dummy = e._parse( instring, loc ) - exprsFound = True - except ParseException: - pass - return loc - - def preParse( self, instring, loc ): - if self.ignoreExprs: - loc = self._skipIgnorables( instring, loc ) - - if self.skipWhitespace: - wt = self.whiteChars - instrlen = len(instring) - while loc < instrlen and instring[loc] in wt: - loc += 1 - - return loc - - def parseImpl( self, instring, loc, doActions=True ): - return loc, [] - - def postParse( self, instring, loc, tokenlist ): - return tokenlist - - #~ @profile - def _parseNoCache( self, instring, loc, doActions=True, callPreParse=True ): - debugging = ( self.debug ) #and doActions ) - - if debugging or self.failAction: - #~ print ("Match",self,"at loc",loc,"(%d,%d)" % ( lineno(loc,instring), col(loc,instring) )) - if (self.debugActions[0] ): - self.debugActions[0]( instring, loc, self ) - if callPreParse and self.callPreparse: - preloc = self.preParse( instring, loc ) - else: - preloc = loc - tokensStart = loc - try: - try: - loc,tokens = self.parseImpl( instring, preloc, doActions ) - except IndexError: - raise ParseException( instring, len(instring), self.errmsg, self ) - except ParseBaseException, err: - #~ print ("Exception raised:", err) - if self.debugActions[2]: - self.debugActions[2]( instring, tokensStart, self, err ) - if self.failAction: - self.failAction( instring, tokensStart, self, err ) - raise - else: - if callPreParse and self.callPreparse: - preloc = self.preParse( instring, loc ) - else: - preloc = loc - tokensStart = loc - if self.mayIndexError or loc >= len(instring): - try: - loc,tokens = self.parseImpl( instring, preloc, doActions ) - except IndexError: - raise ParseException( instring, len(instring), self.errmsg, self ) - else: - loc,tokens = self.parseImpl( instring, preloc, doActions ) - - tokens = self.postParse( instring, loc, tokens ) - - retTokens = ParseResults( tokens, self.resultsName, asList=self.saveAsList, modal=self.modalResults ) - if self.parseAction and (doActions or self.callDuringTry): - if debugging: - try: - for fn in self.parseAction: - tokens = fn( instring, tokensStart, retTokens ) - if tokens is not None: - retTokens = ParseResults( tokens, - self.resultsName, - asList=self.saveAsList and isinstance(tokens,(ParseResults,list)), - modal=self.modalResults ) - except ParseBaseException, err: - #~ print "Exception raised in user parse action:", err - if (self.debugActions[2] ): - self.debugActions[2]( instring, tokensStart, self, err ) - raise - else: - for fn in self.parseAction: - tokens = fn( instring, tokensStart, retTokens ) - if tokens is not None: - retTokens = ParseResults( tokens, - self.resultsName, - asList=self.saveAsList and isinstance(tokens,(ParseResults,list)), - modal=self.modalResults ) - - if debugging: - #~ print ("Matched",self,"->",retTokens.asList()) - if (self.debugActions[1] ): - self.debugActions[1]( instring, tokensStart, loc, self, retTokens ) - - return loc, retTokens - - def tryParse( self, instring, loc ): - try: - return self._parse( instring, loc, doActions=False )[0] - except ParseFatalException: - raise ParseException( instring, loc, self.errmsg, self) - - # this method gets repeatedly called during backtracking with the same arguments - - # we can cache these arguments and save ourselves the trouble of re-parsing the contained expression - def _parseCache( self, instring, loc, doActions=True, callPreParse=True ): - lookup = (self,instring,loc,callPreParse,doActions) - if lookup in ParserElement._exprArgCache: - value = ParserElement._exprArgCache[ lookup ] - if isinstance(value,Exception): - raise value - return value - else: - try: - value = self._parseNoCache( instring, loc, doActions, callPreParse ) - ParserElement._exprArgCache[ lookup ] = (value[0],value[1].copy()) - return value - except ParseBaseException, pe: - ParserElement._exprArgCache[ lookup ] = pe - raise - - _parse = _parseNoCache - - # argument cache for optimizing repeated calls when backtracking through recursive expressions - _exprArgCache = {} - def resetCache(): - ParserElement._exprArgCache.clear() - resetCache = staticmethod(resetCache) - - _packratEnabled = False - def enablePackrat(): - """Enables "packrat" parsing, which adds memoizing to the parsing logic. - Repeated parse attempts at the same string location (which happens - often in many complex grammars) can immediately return a cached value, - instead of re-executing parsing/validating code. Memoizing is done of - both valid results and parsing exceptions. - - This speedup may break existing programs that use parse actions that - have side-effects. For this reason, packrat parsing is disabled when - you first import pyparsing. To activate the packrat feature, your - program must call the class method ParserElement.enablePackrat(). If - your program uses psyco to "compile as you go", you must call - enablePackrat before calling psyco.full(). If you do not do this, - Python will crash. For best results, call enablePackrat() immediately - after importing pyparsing. - """ - if not ParserElement._packratEnabled: - ParserElement._packratEnabled = True - ParserElement._parse = ParserElement._parseCache - enablePackrat = staticmethod(enablePackrat) - - def parseString( self, instring, parseAll=False ): - """Execute the parse expression with the given string. - This is the main interface to the client code, once the complete - expression has been built. - - If you want the grammar to require that the entire input string be - successfully parsed, then set parseAll to True (equivalent to ending - the grammar with StringEnd()). - - Note: parseString implicitly calls expandtabs() on the input string, - in order to report proper column numbers in parse actions. - If the input string contains tabs and - the grammar uses parse actions that use the loc argument to index into the - string being parsed, you can ensure you have a consistent view of the input - string by: - - calling parseWithTabs on your grammar before calling parseString - (see L{I{parseWithTabs}}) - - define your parse action using the full (s,loc,toks) signature, and - reference the input string using the parse action's s argument - - explictly expand the tabs in your input string before calling - parseString - """ - ParserElement.resetCache() - if not self.streamlined: - self.streamline() - #~ self.saveAsList = True - for e in self.ignoreExprs: - e.streamline() - if not self.keepTabs: - instring = instring.expandtabs() - try: - loc, tokens = self._parse( instring, 0 ) - if parseAll: - loc = self.preParse( instring, loc ) - StringEnd()._parse( instring, loc ) - except ParseBaseException, exc: - # catch and re-raise exception from here, clears out pyparsing internal stack trace - raise exc - else: - return tokens - - def scanString( self, instring, maxMatches=_MAX_INT ): - """Scan the input string for expression matches. Each match will return the - matching tokens, start location, and end location. May be called with optional - maxMatches argument, to clip scanning after 'n' matches are found. - - Note that the start and end locations are reported relative to the string - being parsed. See L{I{parseString}} for more information on parsing - strings with embedded tabs.""" - if not self.streamlined: - self.streamline() - for e in self.ignoreExprs: - e.streamline() - - if not self.keepTabs: - instring = _ustr(instring).expandtabs() - instrlen = len(instring) - loc = 0 - preparseFn = self.preParse - parseFn = self._parse - ParserElement.resetCache() - matches = 0 - try: - while loc <= instrlen and matches < maxMatches: - try: - preloc = preparseFn( instring, loc ) - nextLoc,tokens = parseFn( instring, preloc, callPreParse=False ) - except ParseException: - loc = preloc+1 - else: - matches += 1 - yield tokens, preloc, nextLoc - loc = nextLoc - except ParseBaseException, pe: - raise pe - - def transformString( self, instring ): - """Extension to scanString, to modify matching text with modified tokens that may - be returned from a parse action. To use transformString, define a grammar and - attach a parse action to it that modifies the returned token list. - Invoking transformString() on a target string will then scan for matches, - and replace the matched text patterns according to the logic in the parse - action. transformString() returns the resulting transformed string.""" - out = [] - lastE = 0 - # force preservation of s, to minimize unwanted transformation of string, and to - # keep string locs straight between transformString and scanString - self.keepTabs = True - try: - for t,s,e in self.scanString( instring ): - out.append( instring[lastE:s] ) - if t: - if isinstance(t,ParseResults): - out += t.asList() - elif isinstance(t,list): - out += t - else: - out.append(t) - lastE = e - out.append(instring[lastE:]) - return "".join(map(_ustr,out)) - except ParseBaseException, pe: - raise pe - - def searchString( self, instring, maxMatches=_MAX_INT ): - """Another extension to scanString, simplifying the access to the tokens found - to match the given parse expression. May be called with optional - maxMatches argument, to clip searching after 'n' matches are found. - """ - try: - return ParseResults([ t for t,s,e in self.scanString( instring, maxMatches ) ]) - except ParseBaseException, pe: - raise pe - - def __add__(self, other ): - """Implementation of + operator - returns And""" - if isinstance( other, basestring ): - other = Literal( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return And( [ self, other ] ) - - def __radd__(self, other ): - """Implementation of + operator when left operand is not a ParserElement""" - if isinstance( other, basestring ): - other = Literal( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return other + self - - def __sub__(self, other): - """Implementation of - operator, returns And with error stop""" - if isinstance( other, basestring ): - other = Literal( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return And( [ self, And._ErrorStop(), other ] ) - - def __rsub__(self, other ): - """Implementation of - operator when left operand is not a ParserElement""" - if isinstance( other, basestring ): - other = Literal( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return other - self - - def __mul__(self,other): - if isinstance(other,int): - minElements, optElements = other,0 - elif isinstance(other,tuple): - other = (other + (None, None))[:2] - if other[0] is None: - other = (0, other[1]) - if isinstance(other[0],int) and other[1] is None: - if other[0] == 0: - return ZeroOrMore(self) - if other[0] == 1: - return OneOrMore(self) - else: - return self*other[0] + ZeroOrMore(self) - elif isinstance(other[0],int) and isinstance(other[1],int): - minElements, optElements = other - optElements -= minElements - else: - raise TypeError("cannot multiply 'ParserElement' and ('%s','%s') objects", type(other[0]),type(other[1])) - else: - raise TypeError("cannot multiply 'ParserElement' and '%s' objects", type(other)) - - if minElements < 0: - raise ValueError("cannot multiply ParserElement by negative value") - if optElements < 0: - raise ValueError("second tuple value must be greater or equal to first tuple value") - if minElements == optElements == 0: - raise ValueError("cannot multiply ParserElement by 0 or (0,0)") - - if (optElements): - def makeOptionalList(n): - if n>1: - return Optional(self + makeOptionalList(n-1)) - else: - return Optional(self) - if minElements: - if minElements == 1: - ret = self + makeOptionalList(optElements) - else: - ret = And([self]*minElements) + makeOptionalList(optElements) - else: - ret = makeOptionalList(optElements) - else: - if minElements == 1: - ret = self - else: - ret = And([self]*minElements) - return ret - - def __rmul__(self, other): - return self.__mul__(other) - - def __or__(self, other ): - """Implementation of | operator - returns MatchFirst""" - if isinstance( other, basestring ): - other = Literal( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return MatchFirst( [ self, other ] ) - - def __ror__(self, other ): - """Implementation of | operator when left operand is not a ParserElement""" - if isinstance( other, basestring ): - other = Literal( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return other | self - - def __xor__(self, other ): - """Implementation of ^ operator - returns Or""" - if isinstance( other, basestring ): - other = Literal( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return Or( [ self, other ] ) - - def __rxor__(self, other ): - """Implementation of ^ operator when left operand is not a ParserElement""" - if isinstance( other, basestring ): - other = Literal( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return other ^ self - - def __and__(self, other ): - """Implementation of & operator - returns Each""" - if isinstance( other, basestring ): - other = Literal( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return Each( [ self, other ] ) - - def __rand__(self, other ): - """Implementation of & operator when left operand is not a ParserElement""" - if isinstance( other, basestring ): - other = Literal( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return other & self - - def __invert__( self ): - """Implementation of ~ operator - returns NotAny""" - return NotAny( self ) - - def __call__(self, name): - """Shortcut for setResultsName, with listAllMatches=default:: - userdata = Word(alphas).setResultsName("name") + Word(nums+"-").setResultsName("socsecno") - could be written as:: - userdata = Word(alphas)("name") + Word(nums+"-")("socsecno") - """ - return self.setResultsName(name) - - def suppress( self ): - """Suppresses the output of this ParserElement; useful to keep punctuation from - cluttering up returned output. - """ - return Suppress( self ) - - def leaveWhitespace( self ): - """Disables the skipping of whitespace before matching the characters in the - ParserElement's defined pattern. This is normally only used internally by - the pyparsing module, but may be needed in some whitespace-sensitive grammars. - """ - self.skipWhitespace = False - return self - - def setWhitespaceChars( self, chars ): - """Overrides the default whitespace chars - """ - self.skipWhitespace = True - self.whiteChars = chars - self.copyDefaultWhiteChars = False - return self - - def parseWithTabs( self ): - """Overrides default behavior to expand s to spaces before parsing the input string. - Must be called before parseString when the input grammar contains elements that - match characters.""" - self.keepTabs = True - return self - - def ignore( self, other ): - """Define expression to be ignored (e.g., comments) while doing pattern - matching; may be called repeatedly, to define multiple comment or other - ignorable patterns. - """ - if isinstance( other, Suppress ): - if other not in self.ignoreExprs: - self.ignoreExprs.append( other ) - else: - self.ignoreExprs.append( Suppress( other ) ) - return self - - def setDebugActions( self, startAction, successAction, exceptionAction ): - """Enable display of debugging messages while doing pattern matching.""" - self.debugActions = (startAction or _defaultStartDebugAction, - successAction or _defaultSuccessDebugAction, - exceptionAction or _defaultExceptionDebugAction) - self.debug = True - return self - - def setDebug( self, flag=True ): - """Enable display of debugging messages while doing pattern matching. - Set flag to True to enable, False to disable.""" - if flag: - self.setDebugActions( _defaultStartDebugAction, _defaultSuccessDebugAction, _defaultExceptionDebugAction ) - else: - self.debug = False - return self - - def __str__( self ): - return self.name - - def __repr__( self ): - return _ustr(self) - - def streamline( self ): - self.streamlined = True - self.strRepr = None - return self - - def checkRecursion( self, parseElementList ): - pass - - def validate( self, validateTrace=[] ): - """Check defined expressions for valid structure, check for infinite recursive definitions.""" - self.checkRecursion( [] ) - - def parseFile( self, file_or_filename, parseAll=False ): - """Execute the parse expression on the given file or filename. - If a filename is specified (instead of a file object), - the entire file is opened, read, and closed before parsing. - """ - try: - file_contents = file_or_filename.read() - except AttributeError: - f = open(file_or_filename, "rb") - file_contents = f.read() - f.close() - try: - return self.parseString(file_contents, parseAll) - except ParseBaseException, exc: - # catch and re-raise exception from here, clears out pyparsing internal stack trace - raise exc - - def getException(self): - return ParseException("",0,self.errmsg,self) - - def __getattr__(self,aname): - if aname == "myException": - self.myException = ret = self.getException(); - return ret; - else: - raise AttributeError("no such attribute " + aname) - - def __eq__(self,other): - if isinstance(other, ParserElement): - return self is other or self.__dict__ == other.__dict__ - elif isinstance(other, basestring): - try: - self.parseString(_ustr(other), parseAll=True) - return True - except ParseBaseException: - return False - else: - return super(ParserElement,self)==other - - def __ne__(self,other): - return not (self == other) - - def __hash__(self): - return hash(id(self)) - - def __req__(self,other): - return self == other - - def __rne__(self,other): - return not (self == other) - - -class Token(ParserElement): - """Abstract ParserElement subclass, for defining atomic matching patterns.""" - def __init__( self ): - super(Token,self).__init__( savelist=False ) - #self.myException = ParseException("",0,"",self) - - def setName(self, name): - s = super(Token,self).setName(name) - self.errmsg = "Expected " + self.name - #s.myException.msg = self.errmsg - return s - - -class Empty(Token): - """An empty token, will always match.""" - def __init__( self ): - super(Empty,self).__init__() - self.name = "Empty" - self.mayReturnEmpty = True - self.mayIndexError = False - - -class NoMatch(Token): - """A token that will never match.""" - def __init__( self ): - super(NoMatch,self).__init__() - self.name = "NoMatch" - self.mayReturnEmpty = True - self.mayIndexError = False - self.errmsg = "Unmatchable token" - #self.myException.msg = self.errmsg - - def parseImpl( self, instring, loc, doActions=True ): - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - - -class Literal(Token): - """Token to exactly match a specified string.""" - def __init__( self, matchString ): - super(Literal,self).__init__() - self.match = matchString - self.matchLen = len(matchString) - try: - self.firstMatchChar = matchString[0] - except IndexError: - warnings.warn("null string passed to Literal; use Empty() instead", - SyntaxWarning, stacklevel=2) - self.__class__ = Empty - self.name = '"%s"' % _ustr(self.match) - self.errmsg = "Expected " + self.name - self.mayReturnEmpty = False - #self.myException.msg = self.errmsg - self.mayIndexError = False - - # Performance tuning: this routine gets called a *lot* - # if this is a single character match string and the first character matches, - # short-circuit as quickly as possible, and avoid calling startswith - #~ @profile - def parseImpl( self, instring, loc, doActions=True ): - if (instring[loc] == self.firstMatchChar and - (self.matchLen==1 or instring.startswith(self.match,loc)) ): - return loc+self.matchLen, self.match - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc -_L = Literal - -class Keyword(Token): - """Token to exactly match a specified string as a keyword, that is, it must be - immediately followed by a non-keyword character. Compare with Literal:: - Literal("if") will match the leading 'if' in 'ifAndOnlyIf'. - Keyword("if") will not; it will only match the leading 'if in 'if x=1', or 'if(y==2)' - Accepts two optional constructor arguments in addition to the keyword string: - identChars is a string of characters that would be valid identifier characters, - defaulting to all alphanumerics + "_" and "$"; caseless allows case-insensitive - matching, default is False. - """ - DEFAULT_KEYWORD_CHARS = alphanums+"_$" - - def __init__( self, matchString, identChars=DEFAULT_KEYWORD_CHARS, caseless=False ): - super(Keyword,self).__init__() - self.match = matchString - self.matchLen = len(matchString) - try: - self.firstMatchChar = matchString[0] - except IndexError: - warnings.warn("null string passed to Keyword; use Empty() instead", - SyntaxWarning, stacklevel=2) - self.name = '"%s"' % self.match - self.errmsg = "Expected " + self.name - self.mayReturnEmpty = False - #self.myException.msg = self.errmsg - self.mayIndexError = False - self.caseless = caseless - if caseless: - self.caselessmatch = matchString.upper() - identChars = identChars.upper() - self.identChars = _str2dict(identChars) - - def parseImpl( self, instring, loc, doActions=True ): - if self.caseless: - if ( (instring[ loc:loc+self.matchLen ].upper() == self.caselessmatch) and - (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen].upper() not in self.identChars) and - (loc == 0 or instring[loc-1].upper() not in self.identChars) ): - return loc+self.matchLen, self.match - else: - if (instring[loc] == self.firstMatchChar and - (self.matchLen==1 or instring.startswith(self.match,loc)) and - (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen] not in self.identChars) and - (loc == 0 or instring[loc-1] not in self.identChars) ): - return loc+self.matchLen, self.match - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - - def copy(self): - c = super(Keyword,self).copy() - c.identChars = Keyword.DEFAULT_KEYWORD_CHARS - return c - - def setDefaultKeywordChars( chars ): - """Overrides the default Keyword chars - """ - Keyword.DEFAULT_KEYWORD_CHARS = chars - setDefaultKeywordChars = staticmethod(setDefaultKeywordChars) - -class CaselessLiteral(Literal): - """Token to match a specified string, ignoring case of letters. - Note: the matched results will always be in the case of the given - match string, NOT the case of the input text. - """ - def __init__( self, matchString ): - super(CaselessLiteral,self).__init__( matchString.upper() ) - # Preserve the defining literal. - self.returnString = matchString - self.name = "'%s'" % self.returnString - self.errmsg = "Expected " + self.name - #self.myException.msg = self.errmsg - - def parseImpl( self, instring, loc, doActions=True ): - if instring[ loc:loc+self.matchLen ].upper() == self.match: - return loc+self.matchLen, self.returnString - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - -class CaselessKeyword(Keyword): - def __init__( self, matchString, identChars=Keyword.DEFAULT_KEYWORD_CHARS ): - super(CaselessKeyword,self).__init__( matchString, identChars, caseless=True ) - - def parseImpl( self, instring, loc, doActions=True ): - if ( (instring[ loc:loc+self.matchLen ].upper() == self.caselessmatch) and - (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen].upper() not in self.identChars) ): - return loc+self.matchLen, self.match - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - -class Word(Token): - """Token for matching words composed of allowed character sets. - Defined with string containing all allowed initial characters, - an optional string containing allowed body characters (if omitted, - defaults to the initial character set), and an optional minimum, - maximum, and/or exact length. The default value for min is 1 (a - minimum value < 1 is not valid); the default values for max and exact - are 0, meaning no maximum or exact length restriction. - """ - def __init__( self, initChars, bodyChars=None, min=1, max=0, exact=0, asKeyword=False ): - super(Word,self).__init__() - self.initCharsOrig = initChars - self.initChars = _str2dict(initChars) - if bodyChars : - self.bodyCharsOrig = bodyChars - self.bodyChars = _str2dict(bodyChars) - else: - self.bodyCharsOrig = initChars - self.bodyChars = _str2dict(initChars) - - self.maxSpecified = max > 0 - - if min < 1: - raise ValueError("cannot specify a minimum length < 1; use Optional(Word()) if zero-length word is permitted") - - self.minLen = min - - if max > 0: - self.maxLen = max - else: - self.maxLen = _MAX_INT - - if exact > 0: - self.maxLen = exact - self.minLen = exact - - self.name = _ustr(self) - self.errmsg = "Expected " + self.name - #self.myException.msg = self.errmsg - self.mayIndexError = False - self.asKeyword = asKeyword - - if ' ' not in self.initCharsOrig+self.bodyCharsOrig and (min==1 and max==0 and exact==0): - if self.bodyCharsOrig == self.initCharsOrig: - self.reString = "[%s]+" % _escapeRegexRangeChars(self.initCharsOrig) - elif len(self.bodyCharsOrig) == 1: - self.reString = "%s[%s]*" % \ - (re.escape(self.initCharsOrig), - _escapeRegexRangeChars(self.bodyCharsOrig),) - else: - self.reString = "[%s][%s]*" % \ - (_escapeRegexRangeChars(self.initCharsOrig), - _escapeRegexRangeChars(self.bodyCharsOrig),) - if self.asKeyword: - self.reString = r"\b"+self.reString+r"\b" - try: - self.re = re.compile( self.reString ) - except: - self.re = None - - def parseImpl( self, instring, loc, doActions=True ): - if self.re: - result = self.re.match(instring,loc) - if not result: - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - - loc = result.end() - return loc,result.group() - - if not(instring[ loc ] in self.initChars): - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - start = loc - loc += 1 - instrlen = len(instring) - bodychars = self.bodyChars - maxloc = start + self.maxLen - maxloc = min( maxloc, instrlen ) - while loc < maxloc and instring[loc] in bodychars: - loc += 1 - - throwException = False - if loc - start < self.minLen: - throwException = True - if self.maxSpecified and loc < instrlen and instring[loc] in bodychars: - throwException = True - if self.asKeyword: - if (start>0 and instring[start-1] in bodychars) or (loc4: - return s[:4]+"..." - else: - return s - - if ( self.initCharsOrig != self.bodyCharsOrig ): - self.strRepr = "W:(%s,%s)" % ( charsAsStr(self.initCharsOrig), charsAsStr(self.bodyCharsOrig) ) - else: - self.strRepr = "W:(%s)" % charsAsStr(self.initCharsOrig) - - return self.strRepr - - -class Regex(Token): - """Token for matching strings that match a given regular expression. - Defined with string specifying the regular expression in a form recognized by the inbuilt Python re module. - """ - def __init__( self, pattern, flags=0): - """The parameters pattern and flags are passed to the re.compile() function as-is. See the Python re module for an explanation of the acceptable patterns and flags.""" - super(Regex,self).__init__() - - if len(pattern) == 0: - warnings.warn("null string passed to Regex; use Empty() instead", - SyntaxWarning, stacklevel=2) - - self.pattern = pattern - self.flags = flags - - try: - self.re = re.compile(self.pattern, self.flags) - self.reString = self.pattern - except sre_constants.error: - warnings.warn("invalid pattern (%s) passed to Regex" % pattern, - SyntaxWarning, stacklevel=2) - raise - - self.name = _ustr(self) - self.errmsg = "Expected " + self.name - #self.myException.msg = self.errmsg - self.mayIndexError = False - self.mayReturnEmpty = True - - def parseImpl( self, instring, loc, doActions=True ): - result = self.re.match(instring,loc) - if not result: - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - - loc = result.end() - d = result.groupdict() - ret = ParseResults(result.group()) - if d: - for k in d: - ret[k] = d[k] - return loc,ret - - def __str__( self ): - try: - return super(Regex,self).__str__() - except: - pass - - if self.strRepr is None: - self.strRepr = "Re:(%s)" % repr(self.pattern) - - return self.strRepr - - -class QuotedString(Token): - """Token for matching strings that are delimited by quoting characters. - """ - def __init__( self, quoteChar, escChar=None, escQuote=None, multiline=False, unquoteResults=True, endQuoteChar=None): - """ - Defined with the following parameters: - - quoteChar - string of one or more characters defining the quote delimiting string - - escChar - character to escape quotes, typically backslash (default=None) - - escQuote - special quote sequence to escape an embedded quote string (such as SQL's "" to escape an embedded ") (default=None) - - multiline - boolean indicating whether quotes can span multiple lines (default=False) - - unquoteResults - boolean indicating whether the matched text should be unquoted (default=True) - - endQuoteChar - string of one or more characters defining the end of the quote delimited string (default=None => same as quoteChar) - """ - super(QuotedString,self).__init__() - - # remove white space from quote chars - wont work anyway - quoteChar = quoteChar.strip() - if len(quoteChar) == 0: - warnings.warn("quoteChar cannot be the empty string",SyntaxWarning,stacklevel=2) - raise SyntaxError() - - if endQuoteChar is None: - endQuoteChar = quoteChar - else: - endQuoteChar = endQuoteChar.strip() - if len(endQuoteChar) == 0: - warnings.warn("endQuoteChar cannot be the empty string",SyntaxWarning,stacklevel=2) - raise SyntaxError() - - self.quoteChar = quoteChar - self.quoteCharLen = len(quoteChar) - self.firstQuoteChar = quoteChar[0] - self.endQuoteChar = endQuoteChar - self.endQuoteCharLen = len(endQuoteChar) - self.escChar = escChar - self.escQuote = escQuote - self.unquoteResults = unquoteResults - - if multiline: - self.flags = re.MULTILINE | re.DOTALL - self.pattern = r'%s(?:[^%s%s]' % \ - ( re.escape(self.quoteChar), - _escapeRegexRangeChars(self.endQuoteChar[0]), - (escChar is not None and _escapeRegexRangeChars(escChar) or '') ) - else: - self.flags = 0 - self.pattern = r'%s(?:[^%s\n\r%s]' % \ - ( re.escape(self.quoteChar), - _escapeRegexRangeChars(self.endQuoteChar[0]), - (escChar is not None and _escapeRegexRangeChars(escChar) or '') ) - if len(self.endQuoteChar) > 1: - self.pattern += ( - '|(?:' + ')|(?:'.join(["%s[^%s]" % (re.escape(self.endQuoteChar[:i]), - _escapeRegexRangeChars(self.endQuoteChar[i])) - for i in range(len(self.endQuoteChar)-1,0,-1)]) + ')' - ) - if escQuote: - self.pattern += (r'|(?:%s)' % re.escape(escQuote)) - if escChar: - self.pattern += (r'|(?:%s.)' % re.escape(escChar)) - self.escCharReplacePattern = re.escape(self.escChar)+"(.)" - self.pattern += (r')*%s' % re.escape(self.endQuoteChar)) - - try: - self.re = re.compile(self.pattern, self.flags) - self.reString = self.pattern - except sre_constants.error: - warnings.warn("invalid pattern (%s) passed to Regex" % self.pattern, - SyntaxWarning, stacklevel=2) - raise - - self.name = _ustr(self) - self.errmsg = "Expected " + self.name - #self.myException.msg = self.errmsg - self.mayIndexError = False - self.mayReturnEmpty = True - - def parseImpl( self, instring, loc, doActions=True ): - result = instring[loc] == self.firstQuoteChar and self.re.match(instring,loc) or None - if not result: - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - - loc = result.end() - ret = result.group() - - if self.unquoteResults: - - # strip off quotes - ret = ret[self.quoteCharLen:-self.endQuoteCharLen] - - if isinstance(ret,basestring): - # replace escaped characters - if self.escChar: - ret = re.sub(self.escCharReplacePattern,"\g<1>",ret) - - # replace escaped quotes - if self.escQuote: - ret = ret.replace(self.escQuote, self.endQuoteChar) - - return loc, ret - - def __str__( self ): - try: - return super(QuotedString,self).__str__() - except: - pass - - if self.strRepr is None: - self.strRepr = "quoted string, starting with %s ending with %s" % (self.quoteChar, self.endQuoteChar) - - return self.strRepr - - -class CharsNotIn(Token): - """Token for matching words composed of characters *not* in a given set. - Defined with string containing all disallowed characters, and an optional - minimum, maximum, and/or exact length. The default value for min is 1 (a - minimum value < 1 is not valid); the default values for max and exact - are 0, meaning no maximum or exact length restriction. - """ - def __init__( self, notChars, min=1, max=0, exact=0 ): - super(CharsNotIn,self).__init__() - self.skipWhitespace = False - self.notChars = notChars - - if min < 1: - raise ValueError("cannot specify a minimum length < 1; use Optional(CharsNotIn()) if zero-length char group is permitted") - - self.minLen = min - - if max > 0: - self.maxLen = max - else: - self.maxLen = _MAX_INT - - if exact > 0: - self.maxLen = exact - self.minLen = exact - - self.name = _ustr(self) - self.errmsg = "Expected " + self.name - self.mayReturnEmpty = ( self.minLen == 0 ) - #self.myException.msg = self.errmsg - self.mayIndexError = False - - def parseImpl( self, instring, loc, doActions=True ): - if instring[loc] in self.notChars: - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - - start = loc - loc += 1 - notchars = self.notChars - maxlen = min( start+self.maxLen, len(instring) ) - while loc < maxlen and \ - (instring[loc] not in notchars): - loc += 1 - - if loc - start < self.minLen: - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - - return loc, instring[start:loc] - - def __str__( self ): - try: - return super(CharsNotIn, self).__str__() - except: - pass - - if self.strRepr is None: - if len(self.notChars) > 4: - self.strRepr = "!W:(%s...)" % self.notChars[:4] - else: - self.strRepr = "!W:(%s)" % self.notChars - - return self.strRepr - -class White(Token): - """Special matching class for matching whitespace. Normally, whitespace is ignored - by pyparsing grammars. This class is included when some whitespace structures - are significant. Define with a string containing the whitespace characters to be - matched; default is " \\t\\r\\n". Also takes optional min, max, and exact arguments, - as defined for the Word class.""" - whiteStrs = { - " " : "", - "\t": "", - "\n": "", - "\r": "", - "\f": "", - } - def __init__(self, ws=" \t\r\n", min=1, max=0, exact=0): - super(White,self).__init__() - self.matchWhite = ws - self.setWhitespaceChars( "".join([c for c in self.whiteChars if c not in self.matchWhite]) ) - #~ self.leaveWhitespace() - self.name = ("".join([White.whiteStrs[c] for c in self.matchWhite])) - self.mayReturnEmpty = True - self.errmsg = "Expected " + self.name - #self.myException.msg = self.errmsg - - self.minLen = min - - if max > 0: - self.maxLen = max - else: - self.maxLen = _MAX_INT - - if exact > 0: - self.maxLen = exact - self.minLen = exact - - def parseImpl( self, instring, loc, doActions=True ): - if not(instring[ loc ] in self.matchWhite): - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - start = loc - loc += 1 - maxloc = start + self.maxLen - maxloc = min( maxloc, len(instring) ) - while loc < maxloc and instring[loc] in self.matchWhite: - loc += 1 - - if loc - start < self.minLen: - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - - return loc, instring[start:loc] - - -class _PositionToken(Token): - def __init__( self ): - super(_PositionToken,self).__init__() - self.name=self.__class__.__name__ - self.mayReturnEmpty = True - self.mayIndexError = False - -class GoToColumn(_PositionToken): - """Token to advance to a specific column of input text; useful for tabular report scraping.""" - def __init__( self, colno ): - super(GoToColumn,self).__init__() - self.col = colno - - def preParse( self, instring, loc ): - if col(loc,instring) != self.col: - instrlen = len(instring) - if self.ignoreExprs: - loc = self._skipIgnorables( instring, loc ) - while loc < instrlen and instring[loc].isspace() and col( loc, instring ) != self.col : - loc += 1 - return loc - - def parseImpl( self, instring, loc, doActions=True ): - thiscol = col( loc, instring ) - if thiscol > self.col: - raise ParseException( instring, loc, "Text not in expected column", self ) - newloc = loc + self.col - thiscol - ret = instring[ loc: newloc ] - return newloc, ret - -class LineStart(_PositionToken): - """Matches if current position is at the beginning of a line within the parse string""" - def __init__( self ): - super(LineStart,self).__init__() - self.setWhitespaceChars( ParserElement.DEFAULT_WHITE_CHARS.replace("\n","") ) - self.errmsg = "Expected start of line" - #self.myException.msg = self.errmsg - - def preParse( self, instring, loc ): - preloc = super(LineStart,self).preParse(instring,loc) - if instring[preloc] == "\n": - loc += 1 - return loc - - def parseImpl( self, instring, loc, doActions=True ): - if not( loc==0 or - (loc == self.preParse( instring, 0 )) or - (instring[loc-1] == "\n") ): #col(loc, instring) != 1: - #~ raise ParseException( instring, loc, "Expected start of line" ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - return loc, [] - -class LineEnd(_PositionToken): - """Matches if current position is at the end of a line within the parse string""" - def __init__( self ): - super(LineEnd,self).__init__() - self.setWhitespaceChars( ParserElement.DEFAULT_WHITE_CHARS.replace("\n","") ) - self.errmsg = "Expected end of line" - #self.myException.msg = self.errmsg - - def parseImpl( self, instring, loc, doActions=True ): - if loc len(instring): - return loc, [] - else: - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - -class WordStart(_PositionToken): - """Matches if the current position is at the beginning of a Word, and - is not preceded by any character in a given set of wordChars - (default=printables). To emulate the \b behavior of regular expressions, - use WordStart(alphanums). WordStart will also match at the beginning of - the string being parsed, or at the beginning of a line. - """ - def __init__(self, wordChars = printables): - super(WordStart,self).__init__() - self.wordChars = _str2dict(wordChars) - self.errmsg = "Not at the start of a word" - - def parseImpl(self, instring, loc, doActions=True ): - if loc != 0: - if (instring[loc-1] in self.wordChars or - instring[loc] not in self.wordChars): - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - return loc, [] - -class WordEnd(_PositionToken): - """Matches if the current position is at the end of a Word, and - is not followed by any character in a given set of wordChars - (default=printables). To emulate the \b behavior of regular expressions, - use WordEnd(alphanums). WordEnd will also match at the end of - the string being parsed, or at the end of a line. - """ - def __init__(self, wordChars = printables): - super(WordEnd,self).__init__() - self.wordChars = _str2dict(wordChars) - self.skipWhitespace = False - self.errmsg = "Not at the end of a word" - - def parseImpl(self, instring, loc, doActions=True ): - instrlen = len(instring) - if instrlen>0 and loc maxExcLoc: - maxException = err - maxExcLoc = err.loc - except IndexError: - if len(instring) > maxExcLoc: - maxException = ParseException(instring,len(instring),e.errmsg,self) - maxExcLoc = len(instring) - else: - if loc2 > maxMatchLoc: - maxMatchLoc = loc2 - maxMatchExp = e - - if maxMatchLoc < 0: - if maxException is not None: - raise maxException - else: - raise ParseException(instring, loc, "no defined alternatives to match", self) - - return maxMatchExp._parse( instring, loc, doActions ) - - def __ixor__(self, other ): - if isinstance( other, basestring ): - other = Literal( other ) - return self.append( other ) #Or( [ self, other ] ) - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "{" + " ^ ".join( [ _ustr(e) for e in self.exprs ] ) + "}" - - return self.strRepr - - def checkRecursion( self, parseElementList ): - subRecCheckList = parseElementList[:] + [ self ] - for e in self.exprs: - e.checkRecursion( subRecCheckList ) - - -class MatchFirst(ParseExpression): - """Requires that at least one ParseExpression is found. - If two expressions match, the first one listed is the one that will match. - May be constructed using the '|' operator. - """ - def __init__( self, exprs, savelist = False ): - super(MatchFirst,self).__init__(exprs, savelist) - if exprs: - self.mayReturnEmpty = False - for e in self.exprs: - if e.mayReturnEmpty: - self.mayReturnEmpty = True - break - else: - self.mayReturnEmpty = True - - def parseImpl( self, instring, loc, doActions=True ): - maxExcLoc = -1 - maxException = None - for e in self.exprs: - try: - ret = e._parse( instring, loc, doActions ) - return ret - except ParseException, err: - if err.loc > maxExcLoc: - maxException = err - maxExcLoc = err.loc - except IndexError: - if len(instring) > maxExcLoc: - maxException = ParseException(instring,len(instring),e.errmsg,self) - maxExcLoc = len(instring) - - # only got here if no expression matched, raise exception for match that made it the furthest - else: - if maxException is not None: - raise maxException - else: - raise ParseException(instring, loc, "no defined alternatives to match", self) - - def __ior__(self, other ): - if isinstance( other, basestring ): - other = Literal( other ) - return self.append( other ) #MatchFirst( [ self, other ] ) - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "{" + " | ".join( [ _ustr(e) for e in self.exprs ] ) + "}" - - return self.strRepr - - def checkRecursion( self, parseElementList ): - subRecCheckList = parseElementList[:] + [ self ] - for e in self.exprs: - e.checkRecursion( subRecCheckList ) - - -class Each(ParseExpression): - """Requires all given ParseExpressions to be found, but in any order. - Expressions may be separated by whitespace. - May be constructed using the '&' operator. - """ - def __init__( self, exprs, savelist = True ): - super(Each,self).__init__(exprs, savelist) - self.mayReturnEmpty = True - for e in self.exprs: - if not e.mayReturnEmpty: - self.mayReturnEmpty = False - break - self.skipWhitespace = True - self.initExprGroups = True - - def parseImpl( self, instring, loc, doActions=True ): - if self.initExprGroups: - self.optionals = [ e.expr for e in self.exprs if isinstance(e,Optional) ] - self.multioptionals = [ e.expr for e in self.exprs if isinstance(e,ZeroOrMore) ] - self.multirequired = [ e.expr for e in self.exprs if isinstance(e,OneOrMore) ] - self.required = [ e for e in self.exprs if not isinstance(e,(Optional,ZeroOrMore,OneOrMore)) ] - self.required += self.multirequired - self.initExprGroups = False - tmpLoc = loc - tmpReqd = self.required[:] - tmpOpt = self.optionals[:] - matchOrder = [] - - keepMatching = True - while keepMatching: - tmpExprs = tmpReqd + tmpOpt + self.multioptionals + self.multirequired - failed = [] - for e in tmpExprs: - try: - tmpLoc = e.tryParse( instring, tmpLoc ) - except ParseException: - failed.append(e) - else: - matchOrder.append(e) - if e in tmpReqd: - tmpReqd.remove(e) - elif e in tmpOpt: - tmpOpt.remove(e) - if len(failed) == len(tmpExprs): - keepMatching = False - - if tmpReqd: - missing = ", ".join( [ _ustr(e) for e in tmpReqd ] ) - raise ParseException(instring,loc,"Missing one or more required elements (%s)" % missing ) - - # add any unmatched Optionals, in case they have default values defined - matchOrder += [e for e in self.exprs if isinstance(e,Optional) and e.expr in tmpOpt] - - resultlist = [] - for e in matchOrder: - loc,results = e._parse(instring,loc,doActions) - resultlist.append(results) - - finalResults = ParseResults([]) - for r in resultlist: - dups = {} - for k in r.keys(): - if k in finalResults.keys(): - tmp = ParseResults(finalResults[k]) - tmp += ParseResults(r[k]) - dups[k] = tmp - finalResults += ParseResults(r) - for k,v in dups.items(): - finalResults[k] = v - return loc, finalResults - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "{" + " & ".join( [ _ustr(e) for e in self.exprs ] ) + "}" - - return self.strRepr - - def checkRecursion( self, parseElementList ): - subRecCheckList = parseElementList[:] + [ self ] - for e in self.exprs: - e.checkRecursion( subRecCheckList ) - - -class ParseElementEnhance(ParserElement): - """Abstract subclass of ParserElement, for combining and post-processing parsed tokens.""" - def __init__( self, expr, savelist=False ): - super(ParseElementEnhance,self).__init__(savelist) - if isinstance( expr, basestring ): - expr = Literal(expr) - self.expr = expr - self.strRepr = None - if expr is not None: - self.mayIndexError = expr.mayIndexError - self.mayReturnEmpty = expr.mayReturnEmpty - self.setWhitespaceChars( expr.whiteChars ) - self.skipWhitespace = expr.skipWhitespace - self.saveAsList = expr.saveAsList - self.callPreparse = expr.callPreparse - self.ignoreExprs.extend(expr.ignoreExprs) - - def parseImpl( self, instring, loc, doActions=True ): - if self.expr is not None: - return self.expr._parse( instring, loc, doActions, callPreParse=False ) - else: - raise ParseException("",loc,self.errmsg,self) - - def leaveWhitespace( self ): - self.skipWhitespace = False - self.expr = self.expr.copy() - if self.expr is not None: - self.expr.leaveWhitespace() - return self - - def ignore( self, other ): - if isinstance( other, Suppress ): - if other not in self.ignoreExprs: - super( ParseElementEnhance, self).ignore( other ) - if self.expr is not None: - self.expr.ignore( self.ignoreExprs[-1] ) - else: - super( ParseElementEnhance, self).ignore( other ) - if self.expr is not None: - self.expr.ignore( self.ignoreExprs[-1] ) - return self - - def streamline( self ): - super(ParseElementEnhance,self).streamline() - if self.expr is not None: - self.expr.streamline() - return self - - def checkRecursion( self, parseElementList ): - if self in parseElementList: - raise RecursiveGrammarException( parseElementList+[self] ) - subRecCheckList = parseElementList[:] + [ self ] - if self.expr is not None: - self.expr.checkRecursion( subRecCheckList ) - - def validate( self, validateTrace=[] ): - tmp = validateTrace[:]+[self] - if self.expr is not None: - self.expr.validate(tmp) - self.checkRecursion( [] ) - - def __str__( self ): - try: - return super(ParseElementEnhance,self).__str__() - except: - pass - - if self.strRepr is None and self.expr is not None: - self.strRepr = "%s:(%s)" % ( self.__class__.__name__, _ustr(self.expr) ) - return self.strRepr - - -class FollowedBy(ParseElementEnhance): - """Lookahead matching of the given parse expression. FollowedBy - does *not* advance the parsing position within the input string, it only - verifies that the specified parse expression matches at the current - position. FollowedBy always returns a null token list.""" - def __init__( self, expr ): - super(FollowedBy,self).__init__(expr) - self.mayReturnEmpty = True - - def parseImpl( self, instring, loc, doActions=True ): - self.expr.tryParse( instring, loc ) - return loc, [] - - -class NotAny(ParseElementEnhance): - """Lookahead to disallow matching with the given parse expression. NotAny - does *not* advance the parsing position within the input string, it only - verifies that the specified parse expression does *not* match at the current - position. Also, NotAny does *not* skip over leading whitespace. NotAny - always returns a null token list. May be constructed using the '~' operator.""" - def __init__( self, expr ): - super(NotAny,self).__init__(expr) - #~ self.leaveWhitespace() - self.skipWhitespace = False # do NOT use self.leaveWhitespace(), don't want to propagate to exprs - self.mayReturnEmpty = True - self.errmsg = "Found unwanted token, "+_ustr(self.expr) - #self.myException = ParseException("",0,self.errmsg,self) - - def parseImpl( self, instring, loc, doActions=True ): - try: - self.expr.tryParse( instring, loc ) - except (ParseException,IndexError): - pass - else: - #~ raise ParseException(instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - return loc, [] - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "~{" + _ustr(self.expr) + "}" - - return self.strRepr - - -class ZeroOrMore(ParseElementEnhance): - """Optional repetition of zero or more of the given expression.""" - def __init__( self, expr ): - super(ZeroOrMore,self).__init__(expr) - self.mayReturnEmpty = True - - def parseImpl( self, instring, loc, doActions=True ): - tokens = [] - try: - loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False ) - hasIgnoreExprs = ( len(self.ignoreExprs) > 0 ) - while 1: - if hasIgnoreExprs: - preloc = self._skipIgnorables( instring, loc ) - else: - preloc = loc - loc, tmptokens = self.expr._parse( instring, preloc, doActions ) - if tmptokens or tmptokens.keys(): - tokens += tmptokens - except (ParseException,IndexError): - pass - - return loc, tokens - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "[" + _ustr(self.expr) + "]..." - - return self.strRepr - - def setResultsName( self, name, listAllMatches=False ): - ret = super(ZeroOrMore,self).setResultsName(name,listAllMatches) - ret.saveAsList = True - return ret - - -class OneOrMore(ParseElementEnhance): - """Repetition of one or more of the given expression.""" - def parseImpl( self, instring, loc, doActions=True ): - # must be at least one - loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False ) - try: - hasIgnoreExprs = ( len(self.ignoreExprs) > 0 ) - while 1: - if hasIgnoreExprs: - preloc = self._skipIgnorables( instring, loc ) - else: - preloc = loc - loc, tmptokens = self.expr._parse( instring, preloc, doActions ) - if tmptokens or tmptokens.keys(): - tokens += tmptokens - except (ParseException,IndexError): - pass - - return loc, tokens - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "{" + _ustr(self.expr) + "}..." - - return self.strRepr - - def setResultsName( self, name, listAllMatches=False ): - ret = super(OneOrMore,self).setResultsName(name,listAllMatches) - ret.saveAsList = True - return ret - -class _NullToken(object): - def __bool__(self): - return False - __nonzero__ = __bool__ - def __str__(self): - return "" - -_optionalNotMatched = _NullToken() -class Optional(ParseElementEnhance): - """Optional matching of the given expression. - A default return string can also be specified, if the optional expression - is not found. - """ - def __init__( self, exprs, default=_optionalNotMatched ): - super(Optional,self).__init__( exprs, savelist=False ) - self.defaultValue = default - self.mayReturnEmpty = True - - def parseImpl( self, instring, loc, doActions=True ): - try: - loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False ) - except (ParseException,IndexError): - if self.defaultValue is not _optionalNotMatched: - if self.expr.resultsName: - tokens = ParseResults([ self.defaultValue ]) - tokens[self.expr.resultsName] = self.defaultValue - else: - tokens = [ self.defaultValue ] - else: - tokens = [] - return loc, tokens - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "[" + _ustr(self.expr) + "]" - - return self.strRepr - - -class SkipTo(ParseElementEnhance): - """Token for skipping over all undefined text until the matched expression is found. - If include is set to true, the matched expression is also parsed (the skipped text - and matched expression are returned as a 2-element list). The ignore - argument is used to define grammars (typically quoted strings and comments) that - might contain false matches. - """ - def __init__( self, other, include=False, ignore=None, failOn=None ): - super( SkipTo, self ).__init__( other ) - self.ignoreExpr = ignore - self.mayReturnEmpty = True - self.mayIndexError = False - self.includeMatch = include - self.asList = False - if failOn is not None and isinstance(failOn, basestring): - self.failOn = Literal(failOn) - else: - self.failOn = failOn - self.errmsg = "No match found for "+_ustr(self.expr) - #self.myException = ParseException("",0,self.errmsg,self) - - def parseImpl( self, instring, loc, doActions=True ): - startLoc = loc - instrlen = len(instring) - expr = self.expr - failParse = False - while loc <= instrlen: - try: - if self.failOn: - try: - self.failOn.tryParse(instring, loc) - except ParseBaseException: - pass - else: - failParse = True - raise ParseException(instring, loc, "Found expression " + str(self.failOn)) - failParse = False - if self.ignoreExpr is not None: - while 1: - try: - loc = self.ignoreExpr.tryParse(instring,loc) - print "found ignoreExpr, advance to", loc - except ParseBaseException: - break - expr._parse( instring, loc, doActions=False, callPreParse=False ) - skipText = instring[startLoc:loc] - if self.includeMatch: - loc,mat = expr._parse(instring,loc,doActions,callPreParse=False) - if mat: - skipRes = ParseResults( skipText ) - skipRes += mat - return loc, [ skipRes ] - else: - return loc, [ skipText ] - else: - return loc, [ skipText ] - except (ParseException,IndexError): - if failParse: - raise - else: - loc += 1 - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc - -class Forward(ParseElementEnhance): - """Forward declaration of an expression to be defined later - - used for recursive grammars, such as algebraic infix notation. - When the expression is known, it is assigned to the Forward variable using the '<<' operator. - - Note: take care when assigning to Forward not to overlook precedence of operators. - Specifically, '|' has a lower precedence than '<<', so that:: - fwdExpr << a | b | c - will actually be evaluated as:: - (fwdExpr << a) | b | c - thereby leaving b and c out as parseable alternatives. It is recommended that you - explicitly group the values inserted into the Forward:: - fwdExpr << (a | b | c) - """ - def __init__( self, other=None ): - super(Forward,self).__init__( other, savelist=False ) - - def __lshift__( self, other ): - if isinstance( other, basestring ): - other = Literal(other) - self.expr = other - self.mayReturnEmpty = other.mayReturnEmpty - self.strRepr = None - self.mayIndexError = self.expr.mayIndexError - self.mayReturnEmpty = self.expr.mayReturnEmpty - self.setWhitespaceChars( self.expr.whiteChars ) - self.skipWhitespace = self.expr.skipWhitespace - self.saveAsList = self.expr.saveAsList - self.ignoreExprs.extend(self.expr.ignoreExprs) - return None - - def leaveWhitespace( self ): - self.skipWhitespace = False - return self - - def streamline( self ): - if not self.streamlined: - self.streamlined = True - if self.expr is not None: - self.expr.streamline() - return self - - def validate( self, validateTrace=[] ): - if self not in validateTrace: - tmp = validateTrace[:]+[self] - if self.expr is not None: - self.expr.validate(tmp) - self.checkRecursion([]) - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - self._revertClass = self.__class__ - self.__class__ = _ForwardNoRecurse - try: - if self.expr is not None: - retString = _ustr(self.expr) - else: - retString = "None" - finally: - self.__class__ = self._revertClass - return self.__class__.__name__ + ": " + retString - - def copy(self): - if self.expr is not None: - return super(Forward,self).copy() - else: - ret = Forward() - ret << self - return ret - -class _ForwardNoRecurse(Forward): - def __str__( self ): - return "..." - -class TokenConverter(ParseElementEnhance): - """Abstract subclass of ParseExpression, for converting parsed results.""" - def __init__( self, expr, savelist=False ): - super(TokenConverter,self).__init__( expr )#, savelist ) - self.saveAsList = False - -class Upcase(TokenConverter): - """Converter to upper case all matching tokens.""" - def __init__(self, *args): - super(Upcase,self).__init__(*args) - warnings.warn("Upcase class is deprecated, use upcaseTokens parse action instead", - DeprecationWarning,stacklevel=2) - - def postParse( self, instring, loc, tokenlist ): - return list(map( string.upper, tokenlist )) - - -class Combine(TokenConverter): - """Converter to concatenate all matching tokens to a single string. - By default, the matching patterns must also be contiguous in the input string; - this can be disabled by specifying 'adjacent=False' in the constructor. - """ - def __init__( self, expr, joinString="", adjacent=True ): - super(Combine,self).__init__( expr ) - # suppress whitespace-stripping in contained parse expressions, but re-enable it on the Combine itself - if adjacent: - self.leaveWhitespace() - self.adjacent = adjacent - self.skipWhitespace = True - self.joinString = joinString - - def ignore( self, other ): - if self.adjacent: - ParserElement.ignore(self, other) - else: - super( Combine, self).ignore( other ) - return self - - def postParse( self, instring, loc, tokenlist ): - retToks = tokenlist.copy() - del retToks[:] - retToks += ParseResults([ "".join(tokenlist._asStringList(self.joinString)) ], modal=self.modalResults) - - if self.resultsName and len(retToks.keys())>0: - return [ retToks ] - else: - return retToks - -class Group(TokenConverter): - """Converter to return the matched tokens as a list - useful for returning tokens of ZeroOrMore and OneOrMore expressions.""" - def __init__( self, expr ): - super(Group,self).__init__( expr ) - self.saveAsList = True - - def postParse( self, instring, loc, tokenlist ): - return [ tokenlist ] - -class Dict(TokenConverter): - """Converter to return a repetitive expression as a list, but also as a dictionary. - Each element can also be referenced using the first token in the expression as its key. - Useful for tabular report scraping when the first column can be used as a item key. - """ - def __init__( self, exprs ): - super(Dict,self).__init__( exprs ) - self.saveAsList = True - - def postParse( self, instring, loc, tokenlist ): - for i,tok in enumerate(tokenlist): - if len(tok) == 0: - continue - ikey = tok[0] - if isinstance(ikey,int): - ikey = _ustr(tok[0]).strip() - if len(tok)==1: - tokenlist[ikey] = _ParseResultsWithOffset("",i) - elif len(tok)==2 and not isinstance(tok[1],ParseResults): - tokenlist[ikey] = _ParseResultsWithOffset(tok[1],i) - else: - dictvalue = tok.copy() #ParseResults(i) - del dictvalue[0] - if len(dictvalue)!= 1 or (isinstance(dictvalue,ParseResults) and dictvalue.keys()): - tokenlist[ikey] = _ParseResultsWithOffset(dictvalue,i) - else: - tokenlist[ikey] = _ParseResultsWithOffset(dictvalue[0],i) - - if self.resultsName: - return [ tokenlist ] - else: - return tokenlist - - -class Suppress(TokenConverter): - """Converter for ignoring the results of a parsed expression.""" - def postParse( self, instring, loc, tokenlist ): - return [] - - def suppress( self ): - return self - - -class OnlyOnce(object): - """Wrapper for parse actions, to ensure they are only called once.""" - def __init__(self, methodCall): - self.callable = ParserElement._normalizeParseActionArgs(methodCall) - self.called = False - def __call__(self,s,l,t): - if not self.called: - results = self.callable(s,l,t) - self.called = True - return results - raise ParseException(s,l,"") - def reset(self): - self.called = False - -def traceParseAction(f): - """Decorator for debugging parse actions.""" - f = ParserElement._normalizeParseActionArgs(f) - def z(*paArgs): - thisFunc = f.func_name - s,l,t = paArgs[-3:] - if len(paArgs)>3: - thisFunc = paArgs[0].__class__.__name__ + '.' + thisFunc - sys.stderr.write( ">>entering %s(line: '%s', %d, %s)\n" % (thisFunc,line(l,s),l,t) ) - try: - ret = f(*paArgs) - except Exception, exc: - sys.stderr.write( "<", "|".join( [ _escapeRegexChars(sym) for sym in symbols] )) - try: - if len(symbols)==len("".join(symbols)): - return Regex( "[%s]" % "".join( [ _escapeRegexRangeChars(sym) for sym in symbols] ) ) - else: - return Regex( "|".join( [ re.escape(sym) for sym in symbols] ) ) - except: - warnings.warn("Exception creating Regex for oneOf, building MatchFirst", - SyntaxWarning, stacklevel=2) - - - # last resort, just use MatchFirst - return MatchFirst( [ parseElementClass(sym) for sym in symbols ] ) - -def dictOf( key, value ): - """Helper to easily and clearly define a dictionary by specifying the respective patterns - for the key and value. Takes care of defining the Dict, ZeroOrMore, and Group tokens - in the proper order. The key pattern can include delimiting markers or punctuation, - as long as they are suppressed, thereby leaving the significant key text. The value - pattern can include named results, so that the Dict results can include named token - fields. - """ - return Dict( ZeroOrMore( Group ( key + value ) ) ) - -def originalTextFor(expr, asString=True): - """Helper to return the original, untokenized text for a given expression. Useful to - restore the parsed fields of an HTML start tag into the raw tag text itself, or to - revert separate tokens with intervening whitespace back to the original matching - input text. Simpler to use than the parse action keepOriginalText, and does not - require the inspect module to chase up the call stack. By default, returns a - string containing the original parsed text. - - If the optional asString argument is passed as False, then the return value is a - ParseResults containing any results names that were originally matched, and a - single token containing the original matched text from the input string. So if - the expression passed to originalTextFor contains expressions with defined - results names, you must set asString to False if you want to preserve those - results name values.""" - locMarker = Empty().setParseAction(lambda s,loc,t: loc) - matchExpr = locMarker("_original_start") + expr + locMarker("_original_end") - if asString: - extractText = lambda s,l,t: s[t._original_start:t._original_end] - else: - def extractText(s,l,t): - del t[:] - t.insert(0, s[t._original_start:t._original_end]) - del t["_original_start"] - del t["_original_end"] - matchExpr.setParseAction(extractText) - return matchExpr - -# convenience constants for positional expressions -empty = Empty().setName("empty") -lineStart = LineStart().setName("lineStart") -lineEnd = LineEnd().setName("lineEnd") -stringStart = StringStart().setName("stringStart") -stringEnd = StringEnd().setName("stringEnd") - -_escapedPunc = Word( _bslash, r"\[]-*.$+^?()~ ", exact=2 ).setParseAction(lambda s,l,t:t[0][1]) -_printables_less_backslash = "".join([ c for c in printables if c not in r"\]" ]) -_escapedHexChar = Combine( Suppress(_bslash + "0x") + Word(hexnums) ).setParseAction(lambda s,l,t:unichr(int(t[0],16))) -_escapedOctChar = Combine( Suppress(_bslash) + Word("0","01234567") ).setParseAction(lambda s,l,t:unichr(int(t[0],8))) -_singleChar = _escapedPunc | _escapedHexChar | _escapedOctChar | Word(_printables_less_backslash,exact=1) -_charRange = Group(_singleChar + Suppress("-") + _singleChar) -_reBracketExpr = Literal("[") + Optional("^").setResultsName("negate") + Group( OneOrMore( _charRange | _singleChar ) ).setResultsName("body") + "]" - -_expanded = lambda p: (isinstance(p,ParseResults) and ''.join([ unichr(c) for c in range(ord(p[0]),ord(p[1])+1) ]) or p) - -def srange(s): - r"""Helper to easily define string ranges for use in Word construction. Borrows - syntax from regexp '[]' string range definitions:: - srange("[0-9]") -> "0123456789" - srange("[a-z]") -> "abcdefghijklmnopqrstuvwxyz" - srange("[a-z$_]") -> "abcdefghijklmnopqrstuvwxyz$_" - The input string must be enclosed in []'s, and the returned string is the expanded - character set joined into a single string. - The values enclosed in the []'s may be:: - a single character - an escaped character with a leading backslash (such as \- or \]) - an escaped hex character with a leading '\0x' (\0x21, which is a '!' character) - an escaped octal character with a leading '\0' (\041, which is a '!' character) - a range of any of the above, separated by a dash ('a-z', etc.) - any combination of the above ('aeiouy', 'a-zA-Z0-9_$', etc.) - """ - try: - return "".join([_expanded(part) for part in _reBracketExpr.parseString(s).body]) - except: - return "" - -def matchOnlyAtCol(n): - """Helper method for defining parse actions that require matching at a specific - column in the input text. - """ - def verifyCol(strg,locn,toks): - if col(locn,strg) != n: - raise ParseException(strg,locn,"matched token not at column %d" % n) - return verifyCol - -def replaceWith(replStr): - """Helper method for common parse actions that simply return a literal value. Especially - useful when used with transformString(). - """ - def _replFunc(*args): - return [replStr] - return _replFunc - -def removeQuotes(s,l,t): - """Helper parse action for removing quotation marks from parsed quoted strings. - To use, add this parse action to quoted string using:: - quotedString.setParseAction( removeQuotes ) - """ - return t[0][1:-1] - -def upcaseTokens(s,l,t): - """Helper parse action to convert tokens to upper case.""" - return [ tt.upper() for tt in map(_ustr,t) ] - -def downcaseTokens(s,l,t): - """Helper parse action to convert tokens to lower case.""" - return [ tt.lower() for tt in map(_ustr,t) ] - -def keepOriginalText(s,startLoc,t): - """Helper parse action to preserve original parsed text, - overriding any nested parse actions.""" - try: - endloc = getTokensEndLoc() - except ParseException: - raise ParseFatalException("incorrect usage of keepOriginalText - may only be called as a parse action") - del t[:] - t += ParseResults(s[startLoc:endloc]) - return t - -def getTokensEndLoc(): - """Method to be called from within a parse action to determine the end - location of the parsed tokens.""" - import inspect - fstack = inspect.stack() - try: - # search up the stack (through intervening argument normalizers) for correct calling routine - for f in fstack[2:]: - if f[3] == "_parseNoCache": - endloc = f[0].f_locals["loc"] - return endloc - else: - raise ParseFatalException("incorrect usage of getTokensEndLoc - may only be called from within a parse action") - finally: - del fstack - -def _makeTags(tagStr, xml): - """Internal helper to construct opening and closing tag expressions, given a tag name""" - if isinstance(tagStr,basestring): - resname = tagStr - tagStr = Keyword(tagStr, caseless=not xml) - else: - resname = tagStr.name - - tagAttrName = Word(alphas,alphanums+"_-:") - if (xml): - tagAttrValue = dblQuotedString.copy().setParseAction( removeQuotes ) - openTag = Suppress("<") + tagStr + \ - Dict(ZeroOrMore(Group( tagAttrName + Suppress("=") + tagAttrValue ))) + \ - Optional("/",default=[False]).setResultsName("empty").setParseAction(lambda s,l,t:t[0]=='/') + Suppress(">") - else: - printablesLessRAbrack = "".join( [ c for c in printables if c not in ">" ] ) - tagAttrValue = quotedString.copy().setParseAction( removeQuotes ) | Word(printablesLessRAbrack) - openTag = Suppress("<") + tagStr + \ - Dict(ZeroOrMore(Group( tagAttrName.setParseAction(downcaseTokens) + \ - Optional( Suppress("=") + tagAttrValue ) ))) + \ - Optional("/",default=[False]).setResultsName("empty").setParseAction(lambda s,l,t:t[0]=='/') + Suppress(">") - closeTag = Combine(_L("") - - openTag = openTag.setResultsName("start"+"".join(resname.replace(":"," ").title().split())).setName("<%s>" % tagStr) - closeTag = closeTag.setResultsName("end"+"".join(resname.replace(":"," ").title().split())).setName("" % tagStr) - - return openTag, closeTag - -def makeHTMLTags(tagStr): - """Helper to construct opening and closing tag expressions for HTML, given a tag name""" - return _makeTags( tagStr, False ) - -def makeXMLTags(tagStr): - """Helper to construct opening and closing tag expressions for XML, given a tag name""" - return _makeTags( tagStr, True ) - -def withAttribute(*args,**attrDict): - """Helper to create a validating parse action to be used with start tags created - with makeXMLTags or makeHTMLTags. Use withAttribute to qualify a starting tag - with a required attribute value, to avoid false matches on common tags such as - or
. - - Call withAttribute with a series of attribute names and values. Specify the list - of filter attributes names and values as: - - keyword arguments, as in (class="Customer",align="right"), or - - a list of name-value tuples, as in ( ("ns1:class", "Customer"), ("ns2:align","right") ) - For attribute names with a namespace prefix, you must use the second form. Attribute - names are matched insensitive to upper/lower case. - - To verify that the attribute exists, but without specifying a value, pass - withAttribute.ANY_VALUE as the value. - """ - if args: - attrs = args[:] - else: - attrs = attrDict.items() - attrs = [(k,v) for k,v in attrs] - def pa(s,l,tokens): - for attrName,attrValue in attrs: - if attrName not in tokens: - raise ParseException(s,l,"no matching attribute " + attrName) - if attrValue != withAttribute.ANY_VALUE and tokens[attrName] != attrValue: - raise ParseException(s,l,"attribute '%s' has value '%s', must be '%s'" % - (attrName, tokens[attrName], attrValue)) - return pa -withAttribute.ANY_VALUE = object() - -opAssoc = _Constants() -opAssoc.LEFT = object() -opAssoc.RIGHT = object() - -def operatorPrecedence( baseExpr, opList ): - """Helper method for constructing grammars of expressions made up of - operators working in a precedence hierarchy. Operators may be unary or - binary, left- or right-associative. Parse actions can also be attached - to operator expressions. - - Parameters: - - baseExpr - expression representing the most basic element for the nested - - opList - list of tuples, one for each operator precedence level in the - expression grammar; each tuple is of the form - (opExpr, numTerms, rightLeftAssoc, parseAction), where: - - opExpr is the pyparsing expression for the operator; - may also be a string, which will be converted to a Literal; - if numTerms is 3, opExpr is a tuple of two expressions, for the - two operators separating the 3 terms - - numTerms is the number of terms for this operator (must - be 1, 2, or 3) - - rightLeftAssoc is the indicator whether the operator is - right or left associative, using the pyparsing-defined - constants opAssoc.RIGHT and opAssoc.LEFT. - - parseAction is the parse action to be associated with - expressions matching this operator expression (the - parse action tuple member may be omitted) - """ - ret = Forward() - lastExpr = baseExpr | ( Suppress('(') + ret + Suppress(')') ) - for i,operDef in enumerate(opList): - opExpr,arity,rightLeftAssoc,pa = (operDef + (None,))[:4] - if arity == 3: - if opExpr is None or len(opExpr) != 2: - raise ValueError("if numterms=3, opExpr must be a tuple or list of two expressions") - opExpr1, opExpr2 = opExpr - thisExpr = Forward()#.setName("expr%d" % i) - if rightLeftAssoc == opAssoc.LEFT: - if arity == 1: - matchExpr = FollowedBy(lastExpr + opExpr) + Group( lastExpr + OneOrMore( opExpr ) ) - elif arity == 2: - if opExpr is not None: - matchExpr = FollowedBy(lastExpr + opExpr + lastExpr) + Group( lastExpr + OneOrMore( opExpr + lastExpr ) ) - else: - matchExpr = FollowedBy(lastExpr+lastExpr) + Group( lastExpr + OneOrMore(lastExpr) ) - elif arity == 3: - matchExpr = FollowedBy(lastExpr + opExpr1 + lastExpr + opExpr2 + lastExpr) + \ - Group( lastExpr + opExpr1 + lastExpr + opExpr2 + lastExpr ) - else: - raise ValueError("operator must be unary (1), binary (2), or ternary (3)") - elif rightLeftAssoc == opAssoc.RIGHT: - if arity == 1: - # try to avoid LR with this extra test - if not isinstance(opExpr, Optional): - opExpr = Optional(opExpr) - matchExpr = FollowedBy(opExpr.expr + thisExpr) + Group( opExpr + thisExpr ) - elif arity == 2: - if opExpr is not None: - matchExpr = FollowedBy(lastExpr + opExpr + thisExpr) + Group( lastExpr + OneOrMore( opExpr + thisExpr ) ) - else: - matchExpr = FollowedBy(lastExpr + thisExpr) + Group( lastExpr + OneOrMore( thisExpr ) ) - elif arity == 3: - matchExpr = FollowedBy(lastExpr + opExpr1 + thisExpr + opExpr2 + thisExpr) + \ - Group( lastExpr + opExpr1 + thisExpr + opExpr2 + thisExpr ) - else: - raise ValueError("operator must be unary (1), binary (2), or ternary (3)") - else: - raise ValueError("operator must indicate right or left associativity") - if pa: - matchExpr.setParseAction( pa ) - thisExpr << ( matchExpr | lastExpr ) - lastExpr = thisExpr - ret << lastExpr - return ret - -dblQuotedString = Regex(r'"(?:[^"\n\r\\]|(?:"")|(?:\\x[0-9a-fA-F]+)|(?:\\.))*"').setName("string enclosed in double quotes") -sglQuotedString = Regex(r"'(?:[^'\n\r\\]|(?:'')|(?:\\x[0-9a-fA-F]+)|(?:\\.))*'").setName("string enclosed in single quotes") -quotedString = Regex(r'''(?:"(?:[^"\n\r\\]|(?:"")|(?:\\x[0-9a-fA-F]+)|(?:\\.))*")|(?:'(?:[^'\n\r\\]|(?:'')|(?:\\x[0-9a-fA-F]+)|(?:\\.))*')''').setName("quotedString using single or double quotes") -unicodeString = Combine(_L('u') + quotedString.copy()) - -def nestedExpr(opener="(", closer=")", content=None, ignoreExpr=quotedString): - """Helper method for defining nested lists enclosed in opening and closing - delimiters ("(" and ")" are the default). - - Parameters: - - opener - opening character for a nested list (default="("); can also be a pyparsing expression - - closer - closing character for a nested list (default=")"); can also be a pyparsing expression - - content - expression for items within the nested lists (default=None) - - ignoreExpr - expression for ignoring opening and closing delimiters (default=quotedString) - - If an expression is not provided for the content argument, the nested - expression will capture all whitespace-delimited content between delimiters - as a list of separate values. - - Use the ignoreExpr argument to define expressions that may contain - opening or closing characters that should not be treated as opening - or closing characters for nesting, such as quotedString or a comment - expression. Specify multiple expressions using an Or or MatchFirst. - The default is quotedString, but if no expressions are to be ignored, - then pass None for this argument. - """ - if opener == closer: - raise ValueError("opening and closing strings cannot be the same") - if content is None: - if isinstance(opener,basestring) and isinstance(closer,basestring): - if len(opener) == 1 and len(closer)==1: - if ignoreExpr is not None: - content = (Combine(OneOrMore(~ignoreExpr + - CharsNotIn(opener+closer+ParserElement.DEFAULT_WHITE_CHARS,exact=1)) - ).setParseAction(lambda t:t[0].strip())) - else: - content = (empty+CharsNotIn(opener+closer+ParserElement.DEFAULT_WHITE_CHARS - ).setParseAction(lambda t:t[0].strip())) - else: - if ignoreExpr is not None: - content = (Combine(OneOrMore(~ignoreExpr + - ~Literal(opener) + ~Literal(closer) + - CharsNotIn(ParserElement.DEFAULT_WHITE_CHARS,exact=1)) - ).setParseAction(lambda t:t[0].strip())) - else: - content = (Combine(OneOrMore(~Literal(opener) + ~Literal(closer) + - CharsNotIn(ParserElement.DEFAULT_WHITE_CHARS,exact=1)) - ).setParseAction(lambda t:t[0].strip())) - else: - raise ValueError("opening and closing arguments must be strings if no content expression is given") - ret = Forward() - if ignoreExpr is not None: - ret << Group( Suppress(opener) + ZeroOrMore( ignoreExpr | ret | content ) + Suppress(closer) ) - else: - ret << Group( Suppress(opener) + ZeroOrMore( ret | content ) + Suppress(closer) ) - return ret - -def indentedBlock(blockStatementExpr, indentStack, indent=True): - """Helper method for defining space-delimited indentation blocks, such as - those used to define block statements in Python source code. - - Parameters: - - blockStatementExpr - expression defining syntax of statement that - is repeated within the indented block - - indentStack - list created by caller to manage indentation stack - (multiple statementWithIndentedBlock expressions within a single grammar - should share a common indentStack) - - indent - boolean indicating whether block must be indented beyond the - the current level; set to False for block of left-most statements - (default=True) - - A valid block must contain at least one blockStatement. - """ - def checkPeerIndent(s,l,t): - if l >= len(s): return - curCol = col(l,s) - if curCol != indentStack[-1]: - if curCol > indentStack[-1]: - raise ParseFatalException(s,l,"illegal nesting") - raise ParseException(s,l,"not a peer entry") - - def checkSubIndent(s,l,t): - curCol = col(l,s) - if curCol > indentStack[-1]: - indentStack.append( curCol ) - else: - raise ParseException(s,l,"not a subentry") - - def checkUnindent(s,l,t): - if l >= len(s): return - curCol = col(l,s) - if not(indentStack and curCol < indentStack[-1] and curCol <= indentStack[-2]): - raise ParseException(s,l,"not an unindent") - indentStack.pop() - - NL = OneOrMore(LineEnd().setWhitespaceChars("\t ").suppress()) - INDENT = Empty() + Empty().setParseAction(checkSubIndent) - PEER = Empty().setParseAction(checkPeerIndent) - UNDENT = Empty().setParseAction(checkUnindent) - if indent: - smExpr = Group( Optional(NL) + - FollowedBy(blockStatementExpr) + - INDENT + (OneOrMore( PEER + Group(blockStatementExpr) + Optional(NL) )) + UNDENT) - else: - smExpr = Group( Optional(NL) + - (OneOrMore( PEER + Group(blockStatementExpr) + Optional(NL) )) ) - blockStatementExpr.ignore(_bslash + LineEnd()) - return smExpr - -alphas8bit = srange(r"[\0xc0-\0xd6\0xd8-\0xf6\0xf8-\0xff]") -punc8bit = srange(r"[\0xa1-\0xbf\0xd7\0xf7]") - -anyOpenTag,anyCloseTag = makeHTMLTags(Word(alphas,alphanums+"_:")) -commonHTMLEntity = Combine(_L("&") + oneOf("gt lt amp nbsp quot").setResultsName("entity") +";").streamline() -_htmlEntityMap = dict(zip("gt lt amp nbsp quot".split(),'><& "')) -replaceHTMLEntity = lambda t : t.entity in _htmlEntityMap and _htmlEntityMap[t.entity] or None - -# it's easy to get these comment structures wrong - they're very common, so may as well make them available -cStyleComment = Regex(r"/\*(?:[^*]*\*+)+?/").setName("C style comment") - -htmlComment = Regex(r"") -restOfLine = Regex(r".*").leaveWhitespace() -dblSlashComment = Regex(r"\/\/(\\\n|.)*").setName("// comment") -cppStyleComment = Regex(r"/(?:\*(?:[^*]*\*+)+?/|/[^\n]*(?:\n[^\n]*)*?(?:(?" + str(tokenlist)) - print ("tokens = " + str(tokens)) - print ("tokens.columns = " + str(tokens.columns)) - print ("tokens.tables = " + str(tokens.tables)) - print (tokens.asXML("SQL",True)) - except ParseBaseException,err: - print (teststring + "->") - print (err.line) - print (" "*(err.column-1) + "^") - print (err) - print() - - selectToken = CaselessLiteral( "select" ) - fromToken = CaselessLiteral( "from" ) - - ident = Word( alphas, alphanums + "_$" ) - columnName = delimitedList( ident, ".", combine=True ).setParseAction( upcaseTokens ) - columnNameList = Group( delimitedList( columnName ) )#.setName("columns") - tableName = delimitedList( ident, ".", combine=True ).setParseAction( upcaseTokens ) - tableNameList = Group( delimitedList( tableName ) )#.setName("tables") - simpleSQL = ( selectToken + \ - ( '*' | columnNameList ).setResultsName( "columns" ) + \ - fromToken + \ - tableNameList.setResultsName( "tables" ) ) - - test( "SELECT * from XYZZY, ABC" ) - test( "select * from SYS.XYZZY" ) - test( "Select A from Sys.dual" ) - test( "Select AA,BB,CC from Sys.dual" ) - test( "Select A, B, C from Sys.dual" ) - test( "Select A, B, C from Sys.dual" ) - test( "Xelect A, B, C from Sys.dual" ) - test( "Select A, B, C frox Sys.dual" ) - test( "Select" ) - test( "Select ^^^ frox Sys.dual" ) - test( "Select A, B, C from Sys.dual, Table2 " ) diff -Nru pycharm-2018.3.5/helpers/pycharm_generator_utils/pyparsing_py2.py pycharm-2019.1/helpers/pycharm_generator_utils/pyparsing_py2.py --- pycharm-2018.3.5/helpers/pycharm_generator_utils/pyparsing_py2.py 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_generator_utils/pyparsing_py2.py 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,3749 @@ +# module pyparsing.py +# +# Copyright (c) 2003-2011 Paul T. McGuire +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +#from __future__ import generators + +__doc__ = \ +""" +pyparsing module - Classes and methods to define and execute parsing grammars + +The pyparsing module is an alternative approach to creating and executing simple grammars, +vs. the traditional lex/yacc approach, or the use of regular expressions. With pyparsing, you +don't need to learn a new syntax for defining grammars or matching expressions - the parsing module +provides a library of classes that you use to construct the grammar directly in Python. + +Here is a program to parse "Hello, World!" (or any greeting of the form C{", !"}):: + + from pyparsing import Word, alphas + + # define grammar of a greeting + greet = Word( alphas ) + "," + Word( alphas ) + "!" + + hello = "Hello, World!" + print hello, "->", greet.parseString( hello ) + +The program outputs the following:: + + Hello, World! -> ['Hello', ',', 'World', '!'] + +The Python representation of the grammar is quite readable, owing to the self-explanatory +class names, and the use of '+', '|' and '^' operators. + +The parsed results returned from C{parseString()} can be accessed as a nested list, a dictionary, or an +object with named attributes. + +The pyparsing module handles some of the problems that are typically vexing when writing text parsers: + - extra or missing whitespace (the above program will also handle "Hello,World!", "Hello , World !", etc.) + - quoted strings + - embedded comments +""" + +__version__ = "1.5.6" +__versionTime__ = "26 June 2011 10:53" +__author__ = "Paul McGuire " + +import string +from weakref import ref as wkref +import copy +import sys +import warnings +import re +import sre_constants +#~ sys.stderr.write( "testing pyparsing module, version %s, %s\n" % (__version__,__versionTime__ ) ) + +__all__ = [ +'And', 'CaselessKeyword', 'CaselessLiteral', 'CharsNotIn', 'Combine', 'Dict', 'Each', 'Empty', +'FollowedBy', 'Forward', 'GoToColumn', 'Group', 'Keyword', 'LineEnd', 'LineStart', 'Literal', +'MatchFirst', 'NoMatch', 'NotAny', 'OneOrMore', 'OnlyOnce', 'Optional', 'Or', +'ParseBaseException', 'ParseElementEnhance', 'ParseException', 'ParseExpression', 'ParseFatalException', +'ParseResults', 'ParseSyntaxException', 'ParserElement', 'QuotedString', 'RecursiveGrammarException', +'Regex', 'SkipTo', 'StringEnd', 'StringStart', 'Suppress', 'Token', 'TokenConverter', 'Upcase', +'White', 'Word', 'WordEnd', 'WordStart', 'ZeroOrMore', +'alphanums', 'alphas', 'alphas8bit', 'anyCloseTag', 'anyOpenTag', 'cStyleComment', 'col', +'commaSeparatedList', 'commonHTMLEntity', 'countedArray', 'cppStyleComment', 'dblQuotedString', +'dblSlashComment', 'delimitedList', 'dictOf', 'downcaseTokens', 'empty', 'getTokensEndLoc', 'hexnums', +'htmlComment', 'javaStyleComment', 'keepOriginalText', 'line', 'lineEnd', 'lineStart', 'lineno', +'makeHTMLTags', 'makeXMLTags', 'matchOnlyAtCol', 'matchPreviousExpr', 'matchPreviousLiteral', +'nestedExpr', 'nullDebugAction', 'nums', 'oneOf', 'opAssoc', 'operatorPrecedence', 'printables', +'punc8bit', 'pythonStyleComment', 'quotedString', 'removeQuotes', 'replaceHTMLEntity', +'replaceWith', 'restOfLine', 'sglQuotedString', 'srange', 'stringEnd', +'stringStart', 'traceParseAction', 'unicodeString', 'upcaseTokens', 'withAttribute', +'indentedBlock', 'originalTextFor', +] + +""" +Detect if we are running version 3.X and make appropriate changes +Robert A. Clark +""" +_PY3K = sys.version_info[0] > 2 +if _PY3K: + _MAX_INT = sys.maxsize + basestring = str + unichr = chr + _ustr = str + alphas = string.ascii_lowercase + string.ascii_uppercase +else: + _MAX_INT = sys.maxint + range = xrange + set = lambda s : dict( [(c,0) for c in s] ) + alphas = string.lowercase + string.uppercase + + def _ustr(obj): + """Drop-in replacement for str(obj) that tries to be Unicode friendly. It first tries + str(obj). If that fails with a UnicodeEncodeError, then it tries unicode(obj). It + then < returns the unicode object | encodes it with the default encoding | ... >. + """ + if isinstance(obj,unicode): + return obj + + try: + # If this works, then _ustr(obj) has the same behaviour as str(obj), so + # it won't break any existing code. + return str(obj) + + except UnicodeEncodeError: + # The Python docs (http://docs.python.org/ref/customization.html#l2h-182) + # state that "The return value must be a string object". However, does a + # unicode object (being a subclass of basestring) count as a "string + # object"? + # If so, then return a unicode object: + return unicode(obj) + # Else encode it... but how? There are many choices... :) + # Replace unprintables with escape codes? + #return unicode(obj).encode(sys.getdefaultencoding(), 'backslashreplace_errors') + # Replace unprintables with question marks? + #return unicode(obj).encode(sys.getdefaultencoding(), 'replace') + # ... + + alphas = string.lowercase + string.uppercase + +# build list of single arg builtins, tolerant of Python version, that can be used as parse actions +singleArgBuiltins = [] +import __builtin__ +for fname in "sum len enumerate sorted reversed list tuple set any all".split(): + try: + singleArgBuiltins.append(getattr(__builtin__,fname)) + except AttributeError: + continue + +def _xml_escape(data): + """Escape &, <, >, ", ', etc. in a string of data.""" + + # ampersand must be replaced first + from_symbols = '&><"\'' + to_symbols = ['&'+s+';' for s in "amp gt lt quot apos".split()] + for from_,to_ in zip(from_symbols, to_symbols): + data = data.replace(from_, to_) + return data + +class _Constants(object): + pass + +nums = string.digits +hexnums = nums + "ABCDEFabcdef" +alphanums = alphas + nums +_bslash = chr(92) +printables = "".join( [ c for c in string.printable if c not in string.whitespace ] ) + +class ParseBaseException(Exception): + """base exception class for all parsing runtime exceptions""" + # Performance tuning: we construct a *lot* of these, so keep this + # constructor as small and fast as possible + def __init__( self, pstr, loc=0, msg=None, elem=None ): + self.loc = loc + if msg is None: + self.msg = pstr + self.pstr = "" + else: + self.msg = msg + self.pstr = pstr + self.parserElement = elem + + def __getattr__( self, aname ): + """supported attributes by name are: + - lineno - returns the line number of the exception text + - col - returns the column number of the exception text + - line - returns the line containing the exception text + """ + if( aname == "lineno" ): + return lineno( self.loc, self.pstr ) + elif( aname in ("col", "column") ): + return col( self.loc, self.pstr ) + elif( aname == "line" ): + return line( self.loc, self.pstr ) + else: + raise AttributeError(aname) + + def __str__( self ): + return "%s (at char %d), (line:%d, col:%d)" % \ + ( self.msg, self.loc, self.lineno, self.column ) + def __repr__( self ): + return _ustr(self) + def markInputline( self, markerString = ">!<" ): + """Extracts the exception line from the input string, and marks + the location of the exception with a special symbol. + """ + line_str = self.line + line_column = self.column - 1 + if markerString: + line_str = "".join( [line_str[:line_column], + markerString, line_str[line_column:]]) + return line_str.strip() + def __dir__(self): + return "loc msg pstr parserElement lineno col line " \ + "markInputLine __str__ __repr__".split() + +class ParseException(ParseBaseException): + """exception thrown when parse expressions don't match class; + supported attributes by name are: + - lineno - returns the line number of the exception text + - col - returns the column number of the exception text + - line - returns the line containing the exception text + """ + pass + +class ParseFatalException(ParseBaseException): + """user-throwable exception thrown when inconsistent parse content + is found; stops all parsing immediately""" + pass + +class ParseSyntaxException(ParseFatalException): + """just like C{ParseFatalException}, but thrown internally when an + C{ErrorStop} ('-' operator) indicates that parsing is to stop immediately because + an unbacktrackable syntax error has been found""" + def __init__(self, pe): + super(ParseSyntaxException, self).__init__( + pe.pstr, pe.loc, pe.msg, pe.parserElement) + +#~ class ReparseException(ParseBaseException): + #~ """Experimental class - parse actions can raise this exception to cause + #~ pyparsing to reparse the input string: + #~ - with a modified input string, and/or + #~ - with a modified start location + #~ Set the values of the ReparseException in the constructor, and raise the + #~ exception in a parse action to cause pyparsing to use the new string/location. + #~ Setting the values as None causes no change to be made. + #~ """ + #~ def __init_( self, newstring, restartLoc ): + #~ self.newParseText = newstring + #~ self.reparseLoc = restartLoc + +class RecursiveGrammarException(Exception): + """exception thrown by C{validate()} if the grammar could be improperly recursive""" + def __init__( self, parseElementList ): + self.parseElementTrace = parseElementList + + def __str__( self ): + return "RecursiveGrammarException: %s" % self.parseElementTrace + +class _ParseResultsWithOffset(object): + def __init__(self,p1,p2): + self.tup = (p1,p2) + def __getitem__(self,i): + return self.tup[i] + def __repr__(self): + return repr(self.tup) + def setOffset(self,i): + self.tup = (self.tup[0],i) + +class ParseResults(object): + """Structured parse results, to provide multiple means of access to the parsed data: + - as a list (C{len(results)}) + - by list index (C{results[0], results[1]}, etc.) + - by attribute (C{results.}) + """ + #~ __slots__ = ( "__toklist", "__tokdict", "__doinit", "__name", "__parent", "__accumNames", "__weakref__" ) + def __new__(cls, toklist, name=None, asList=True, modal=True ): + if isinstance(toklist, cls): + return toklist + retobj = object.__new__(cls) + retobj.__doinit = True + return retobj + + # Performance tuning: we construct a *lot* of these, so keep this + # constructor as small and fast as possible + def __init__( self, toklist, name=None, asList=True, modal=True, isinstance=isinstance ): + if self.__doinit: + self.__doinit = False + self.__name = None + self.__parent = None + self.__accumNames = {} + if isinstance(toklist, list): + self.__toklist = toklist[:] + else: + self.__toklist = [toklist] + self.__tokdict = dict() + + if name is not None and name: + if not modal: + self.__accumNames[name] = 0 + if isinstance(name,int): + name = _ustr(name) # will always return a str, but use _ustr for consistency + self.__name = name + if not toklist in (None,'',[]): + if isinstance(toklist,basestring): + toklist = [ toklist ] + if asList: + if isinstance(toklist,ParseResults): + self[name] = _ParseResultsWithOffset(toklist.copy(),0) + else: + self[name] = _ParseResultsWithOffset(ParseResults(toklist[0]),0) + self[name].__name = name + else: + try: + self[name] = toklist[0] + except (KeyError,TypeError,IndexError): + self[name] = toklist + + def __getitem__( self, i ): + if isinstance( i, (int,slice) ): + return self.__toklist[i] + else: + if i not in self.__accumNames: + return self.__tokdict[i][-1][0] + else: + return ParseResults([ v[0] for v in self.__tokdict[i] ]) + + def __setitem__( self, k, v, isinstance=isinstance ): + if isinstance(v,_ParseResultsWithOffset): + self.__tokdict[k] = self.__tokdict.get(k,list()) + [v] + sub = v[0] + elif isinstance(k,int): + self.__toklist[k] = v + sub = v + else: + self.__tokdict[k] = self.__tokdict.get(k,list()) + [_ParseResultsWithOffset(v,0)] + sub = v + if isinstance(sub,ParseResults): + sub.__parent = wkref(self) + + def __delitem__( self, i ): + if isinstance(i,(int,slice)): + mylen = len( self.__toklist ) + del self.__toklist[i] + + # convert int to slice + if isinstance(i, int): + if i < 0: + i += mylen + i = slice(i, i+1) + # get removed indices + removed = list(range(*i.indices(mylen))) + removed.reverse() + # fixup indices in token dictionary + for name in self.__tokdict: + occurrences = self.__tokdict[name] + for j in removed: + for k, (value, position) in enumerate(occurrences): + occurrences[k] = _ParseResultsWithOffset(value, position - (position > j)) + else: + del self.__tokdict[i] + + def __contains__( self, k ): + return k in self.__tokdict + + def __len__( self ): return len( self.__toklist ) + def __bool__(self): return len( self.__toklist ) > 0 + __nonzero__ = __bool__ + def __iter__( self ): return iter( self.__toklist ) + def __reversed__( self ): return iter( self.__toklist[::-1] ) + def keys( self ): + """Returns all named result keys.""" + return self.__tokdict.keys() + + def pop( self, index=-1 ): + """Removes and returns item at specified index (default=last). + Will work with either numeric indices or dict-key indicies.""" + ret = self[index] + del self[index] + return ret + + def get(self, key, defaultValue=None): + """Returns named result matching the given key, or if there is no + such name, then returns the given C{defaultValue} or C{None} if no + C{defaultValue} is specified.""" + if key in self: + return self[key] + else: + return defaultValue + + def insert( self, index, insStr ): + """Inserts new element at location index in the list of parsed tokens.""" + self.__toklist.insert(index, insStr) + # fixup indices in token dictionary + for name in self.__tokdict: + occurrences = self.__tokdict[name] + for k, (value, position) in enumerate(occurrences): + occurrences[k] = _ParseResultsWithOffset(value, position + (position > index)) + + def items( self ): + """Returns all named result keys and values as a list of tuples.""" + return [(k,self[k]) for k in self.__tokdict] + + def values( self ): + """Returns all named result values.""" + return [ v[-1][0] for v in self.__tokdict.values() ] + + def __getattr__( self, name ): + if True: #name not in self.__slots__: + if name in self.__tokdict: + if name not in self.__accumNames: + return self.__tokdict[name][-1][0] + else: + return ParseResults([ v[0] for v in self.__tokdict[name] ]) + else: + return "" + return None + + def __add__( self, other ): + ret = self.copy() + ret += other + return ret + + def __iadd__( self, other ): + if other.__tokdict: + offset = len(self.__toklist) + addoffset = ( lambda a: (a<0 and offset) or (a+offset) ) + otheritems = other.__tokdict.items() + otherdictitems = [(k, _ParseResultsWithOffset(v[0],addoffset(v[1])) ) + for (k,vlist) in otheritems for v in vlist] + for k,v in otherdictitems: + self[k] = v + if isinstance(v[0],ParseResults): + v[0].__parent = wkref(self) + + self.__toklist += other.__toklist + self.__accumNames.update( other.__accumNames ) + return self + + def __radd__(self, other): + if isinstance(other,int) and other == 0: + return self.copy() + + def __repr__( self ): + return "(%s, %s)" % ( repr( self.__toklist ), repr( self.__tokdict ) ) + + def __str__( self ): + out = "[" + sep = "" + for i in self.__toklist: + if isinstance(i, ParseResults): + out += sep + _ustr(i) + else: + out += sep + repr(i) + sep = ", " + out += "]" + return out + + def _asStringList( self, sep='' ): + out = [] + for item in self.__toklist: + if out and sep: + out.append(sep) + if isinstance( item, ParseResults ): + out += item._asStringList() + else: + out.append( _ustr(item) ) + return out + + def asList( self ): + """Returns the parse results as a nested list of matching tokens, all converted to strings.""" + out = [] + for res in self.__toklist: + if isinstance(res,ParseResults): + out.append( res.asList() ) + else: + out.append( res ) + return out + + def asDict( self ): + """Returns the named parse results as dictionary.""" + return dict( self.items() ) + + def copy( self ): + """Returns a new copy of a C{ParseResults} object.""" + ret = ParseResults( self.__toklist ) + ret.__tokdict = self.__tokdict.copy() + ret.__parent = self.__parent + ret.__accumNames.update( self.__accumNames ) + ret.__name = self.__name + return ret + + def asXML( self, doctag=None, namedItemsOnly=False, indent="", formatted=True ): + """Returns the parse results as XML. Tags are created for tokens and lists that have defined results names.""" + nl = "\n" + out = [] + namedItems = dict( [ (v[1],k) for (k,vlist) in self.__tokdict.items() + for v in vlist ] ) + nextLevelIndent = indent + " " + + # collapse out indents if formatting is not desired + if not formatted: + indent = "" + nextLevelIndent = "" + nl = "" + + selfTag = None + if doctag is not None: + selfTag = doctag + else: + if self.__name: + selfTag = self.__name + + if not selfTag: + if namedItemsOnly: + return "" + else: + selfTag = "ITEM" + + out += [ nl, indent, "<", selfTag, ">" ] + + worklist = self.__toklist + for i,res in enumerate(worklist): + if isinstance(res,ParseResults): + if i in namedItems: + out += [ res.asXML(namedItems[i], + namedItemsOnly and doctag is None, + nextLevelIndent, + formatted)] + else: + out += [ res.asXML(None, + namedItemsOnly and doctag is None, + nextLevelIndent, + formatted)] + else: + # individual token, see if there is a name for it + resTag = None + if i in namedItems: + resTag = namedItems[i] + if not resTag: + if namedItemsOnly: + continue + else: + resTag = "ITEM" + xmlBodyText = _xml_escape(_ustr(res)) + out += [ nl, nextLevelIndent, "<", resTag, ">", + xmlBodyText, + "" ] + + out += [ nl, indent, "" ] + return "".join(out) + + def __lookup(self,sub): + for k,vlist in self.__tokdict.items(): + for v,loc in vlist: + if sub is v: + return k + return None + + def getName(self): + """Returns the results name for this token expression.""" + if self.__name: + return self.__name + elif self.__parent: + par = self.__parent() + if par: + return par.__lookup(self) + else: + return None + elif (len(self) == 1 and + len(self.__tokdict) == 1 and + self.__tokdict.values()[0][0][1] in (0,-1)): + return self.__tokdict.keys()[0] + else: + return None + + def dump(self,indent='',depth=0): + """Diagnostic method for listing out the contents of a C{ParseResults}. + Accepts an optional C{indent} argument so that this string can be embedded + in a nested display of other data.""" + out = [] + out.append( indent+_ustr(self.asList()) ) + keys = self.items() + keys.sort() + for k,v in keys: + if out: + out.append('\n') + out.append( "%s%s- %s: " % (indent,(' '*depth), k) ) + if isinstance(v,ParseResults): + if v.keys(): + out.append( v.dump(indent,depth+1) ) + else: + out.append(_ustr(v)) + else: + out.append(_ustr(v)) + return "".join(out) + + # add support for pickle protocol + def __getstate__(self): + return ( self.__toklist, + ( self.__tokdict.copy(), + self.__parent is not None and self.__parent() or None, + self.__accumNames, + self.__name ) ) + + def __setstate__(self,state): + self.__toklist = state[0] + (self.__tokdict, + par, + inAccumNames, + self.__name) = state[1] + self.__accumNames = {} + self.__accumNames.update(inAccumNames) + if par is not None: + self.__parent = wkref(par) + else: + self.__parent = None + + def __dir__(self): + return dir(super(ParseResults,self)) + self.keys() + +def col (loc,strg): + """Returns current column within a string, counting newlines as line separators. + The first column is number 1. + + Note: the default parsing behavior is to expand tabs in the input string + before starting the parsing process. See L{I{ParserElement.parseString}} for more information + on parsing strings containing s, and suggested methods to maintain a + consistent view of the parsed string, the parse location, and line and column + positions within the parsed string. + """ + return (loc} for more information + on parsing strings containing s, and suggested methods to maintain a + consistent view of the parsed string, the parse location, and line and column + positions within the parsed string. + """ + return strg.count("\n",0,loc) + 1 + +def line( loc, strg ): + """Returns the line of text containing loc within a string, counting newlines as line separators. + """ + lastCR = strg.rfind("\n", 0, loc) + nextCR = strg.find("\n", loc) + if nextCR >= 0: + return strg[lastCR+1:nextCR] + else: + return strg[lastCR+1:] + +def _defaultStartDebugAction( instring, loc, expr ): + print ("Match " + _ustr(expr) + " at loc " + _ustr(loc) + "(%d,%d)" % ( lineno(loc,instring), col(loc,instring) )) + +def _defaultSuccessDebugAction( instring, startloc, endloc, expr, toks ): + print ("Matched " + _ustr(expr) + " -> " + str(toks.asList())) + +def _defaultExceptionDebugAction( instring, loc, expr, exc ): + print ("Exception raised:" + _ustr(exc)) + +def nullDebugAction(*args): + """'Do-nothing' debug action, to suppress debugging output during parsing.""" + pass + +'decorator to trim function calls to match the arity of the target' +if not _PY3K: + def _trim_arity(func, maxargs=2): + limit = [0] + def wrapper(*args): + while 1: + try: + return func(*args[limit[0]:]) + except TypeError: + if limit[0] <= maxargs: + limit[0] += 1 + continue + raise + return wrapper +else: + def _trim_arity(func, maxargs=2): + limit = maxargs + def wrapper(*args): + #~ nonlocal limit + while 1: + try: + return func(*args[limit:]) + except TypeError: + if limit: + limit -= 1 + continue + raise + return wrapper + +class ParserElement(object): + """Abstract base level parser element class.""" + DEFAULT_WHITE_CHARS = " \n\t\r" + verbose_stacktrace = False + + def setDefaultWhitespaceChars( chars ): + """Overrides the default whitespace chars + """ + ParserElement.DEFAULT_WHITE_CHARS = chars + setDefaultWhitespaceChars = staticmethod(setDefaultWhitespaceChars) + + def __init__( self, savelist=False ): + self.parseAction = list() + self.failAction = None + #~ self.name = "" # don't define self.name, let subclasses try/except upcall + self.strRepr = None + self.resultsName = None + self.saveAsList = savelist + self.skipWhitespace = True + self.whiteChars = ParserElement.DEFAULT_WHITE_CHARS + self.copyDefaultWhiteChars = True + self.mayReturnEmpty = False # used when checking for left-recursion + self.keepTabs = False + self.ignoreExprs = list() + self.debug = False + self.streamlined = False + self.mayIndexError = True # used to optimize exception handling for subclasses that don't advance parse index + self.errmsg = "" + self.modalResults = True # used to mark results names as modal (report only last) or cumulative (list all) + self.debugActions = ( None, None, None ) #custom debug actions + self.re = None + self.callPreparse = True # used to avoid redundant calls to preParse + self.callDuringTry = False + + def copy( self ): + """Make a copy of this C{ParserElement}. Useful for defining different parse actions + for the same parsing pattern, using copies of the original parse element.""" + cpy = copy.copy( self ) + cpy.parseAction = self.parseAction[:] + cpy.ignoreExprs = self.ignoreExprs[:] + if self.copyDefaultWhiteChars: + cpy.whiteChars = ParserElement.DEFAULT_WHITE_CHARS + return cpy + + def setName( self, name ): + """Define name for this expression, for use in debugging.""" + self.name = name + self.errmsg = "Expected " + self.name + if hasattr(self,"exception"): + self.exception.msg = self.errmsg + return self + + def setResultsName( self, name, listAllMatches=False ): + """Define name for referencing matching tokens as a nested attribute + of the returned parse results. + NOTE: this returns a *copy* of the original C{ParserElement} object; + this is so that the client can define a basic element, such as an + integer, and reference it in multiple places with different names. + + You can also set results names using the abbreviated syntax, + C{expr("name")} in place of C{expr.setResultsName("name")} - + see L{I{__call__}<__call__>}. + """ + newself = self.copy() + if name.endswith("*"): + name = name[:-1] + listAllMatches=True + newself.resultsName = name + newself.modalResults = not listAllMatches + return newself + + def setBreak(self,breakFlag = True): + """Method to invoke the Python pdb debugger when this element is + about to be parsed. Set C{breakFlag} to True to enable, False to + disable. + """ + if breakFlag: + _parseMethod = self._parse + def breaker(instring, loc, doActions=True, callPreParse=True): + import pdb + pdb.set_trace() + return _parseMethod( instring, loc, doActions, callPreParse ) + breaker._originalParseMethod = _parseMethod + self._parse = breaker + else: + if hasattr(self._parse,"_originalParseMethod"): + self._parse = self._parse._originalParseMethod + return self + + def setParseAction( self, *fns, **kwargs ): + """Define action to perform when successfully matching parse element definition. + Parse action fn is a callable method with 0-3 arguments, called as C{fn(s,loc,toks)}, + C{fn(loc,toks)}, C{fn(toks)}, or just C{fn()}, where: + - s = the original string being parsed (see note below) + - loc = the location of the matching substring + - toks = a list of the matched tokens, packaged as a ParseResults object + If the functions in fns modify the tokens, they can return them as the return + value from fn, and the modified list of tokens will replace the original. + Otherwise, fn does not need to return any value. + + Note: the default parsing behavior is to expand tabs in the input string + before starting the parsing process. See L{I{parseString}} for more information + on parsing strings containing s, and suggested methods to maintain a + consistent view of the parsed string, the parse location, and line and column + positions within the parsed string. + """ + self.parseAction = list(map(_trim_arity, list(fns))) + self.callDuringTry = ("callDuringTry" in kwargs and kwargs["callDuringTry"]) + return self + + def addParseAction( self, *fns, **kwargs ): + """Add parse action to expression's list of parse actions. See L{I{setParseAction}}.""" + self.parseAction += list(map(_trim_arity, list(fns))) + self.callDuringTry = self.callDuringTry or ("callDuringTry" in kwargs and kwargs["callDuringTry"]) + return self + + def setFailAction( self, fn ): + """Define action to perform if parsing fails at this expression. + Fail acton fn is a callable function that takes the arguments + C{fn(s,loc,expr,err)} where: + - s = string being parsed + - loc = location where expression match was attempted and failed + - expr = the parse expression that failed + - err = the exception thrown + The function returns no value. It may throw C{ParseFatalException} + if it is desired to stop parsing immediately.""" + self.failAction = fn + return self + + def _skipIgnorables( self, instring, loc ): + exprsFound = True + while exprsFound: + exprsFound = False + for e in self.ignoreExprs: + try: + while 1: + loc,dummy = e._parse( instring, loc ) + exprsFound = True + except ParseException: + pass + return loc + + def preParse( self, instring, loc ): + if self.ignoreExprs: + loc = self._skipIgnorables( instring, loc ) + + if self.skipWhitespace: + wt = self.whiteChars + instrlen = len(instring) + while loc < instrlen and instring[loc] in wt: + loc += 1 + + return loc + + def parseImpl( self, instring, loc, doActions=True ): + return loc, [] + + def postParse( self, instring, loc, tokenlist ): + return tokenlist + + #~ @profile + def _parseNoCache( self, instring, loc, doActions=True, callPreParse=True ): + debugging = ( self.debug ) #and doActions ) + + if debugging or self.failAction: + #~ print ("Match",self,"at loc",loc,"(%d,%d)" % ( lineno(loc,instring), col(loc,instring) )) + if (self.debugActions[0] ): + self.debugActions[0]( instring, loc, self ) + if callPreParse and self.callPreparse: + preloc = self.preParse( instring, loc ) + else: + preloc = loc + tokensStart = preloc + try: + try: + loc,tokens = self.parseImpl( instring, preloc, doActions ) + except IndexError: + raise ParseException( instring, len(instring), self.errmsg, self ) + except ParseBaseException: + #~ print ("Exception raised:", err) + err = None + if self.debugActions[2]: + err = sys.exc_info()[1] + self.debugActions[2]( instring, tokensStart, self, err ) + if self.failAction: + if err is None: + err = sys.exc_info()[1] + self.failAction( instring, tokensStart, self, err ) + raise + else: + if callPreParse and self.callPreparse: + preloc = self.preParse( instring, loc ) + else: + preloc = loc + tokensStart = preloc + if self.mayIndexError or loc >= len(instring): + try: + loc,tokens = self.parseImpl( instring, preloc, doActions ) + except IndexError: + raise ParseException( instring, len(instring), self.errmsg, self ) + else: + loc,tokens = self.parseImpl( instring, preloc, doActions ) + + tokens = self.postParse( instring, loc, tokens ) + + retTokens = ParseResults( tokens, self.resultsName, asList=self.saveAsList, modal=self.modalResults ) + if self.parseAction and (doActions or self.callDuringTry): + if debugging: + try: + for fn in self.parseAction: + tokens = fn( instring, tokensStart, retTokens ) + if tokens is not None: + retTokens = ParseResults( tokens, + self.resultsName, + asList=self.saveAsList and isinstance(tokens,(ParseResults,list)), + modal=self.modalResults ) + except ParseBaseException: + #~ print "Exception raised in user parse action:", err + if (self.debugActions[2] ): + err = sys.exc_info()[1] + self.debugActions[2]( instring, tokensStart, self, err ) + raise + else: + for fn in self.parseAction: + tokens = fn( instring, tokensStart, retTokens ) + if tokens is not None: + retTokens = ParseResults( tokens, + self.resultsName, + asList=self.saveAsList and isinstance(tokens,(ParseResults,list)), + modal=self.modalResults ) + + if debugging: + #~ print ("Matched",self,"->",retTokens.asList()) + if (self.debugActions[1] ): + self.debugActions[1]( instring, tokensStart, loc, self, retTokens ) + + return loc, retTokens + + def tryParse( self, instring, loc ): + try: + return self._parse( instring, loc, doActions=False )[0] + except ParseFatalException: + raise ParseException( instring, loc, self.errmsg, self) + + # this method gets repeatedly called during backtracking with the same arguments - + # we can cache these arguments and save ourselves the trouble of re-parsing the contained expression + def _parseCache( self, instring, loc, doActions=True, callPreParse=True ): + lookup = (self,instring,loc,callPreParse,doActions) + if lookup in ParserElement._exprArgCache: + value = ParserElement._exprArgCache[ lookup ] + if isinstance(value, Exception): + raise value + return (value[0],value[1].copy()) + else: + try: + value = self._parseNoCache( instring, loc, doActions, callPreParse ) + ParserElement._exprArgCache[ lookup ] = (value[0],value[1].copy()) + return value + except ParseBaseException: + pe = sys.exc_info()[1] + ParserElement._exprArgCache[ lookup ] = pe + raise + + _parse = _parseNoCache + + # argument cache for optimizing repeated calls when backtracking through recursive expressions + _exprArgCache = {} + def resetCache(): + ParserElement._exprArgCache.clear() + resetCache = staticmethod(resetCache) + + _packratEnabled = False + def enablePackrat(): + """Enables "packrat" parsing, which adds memoizing to the parsing logic. + Repeated parse attempts at the same string location (which happens + often in many complex grammars) can immediately return a cached value, + instead of re-executing parsing/validating code. Memoizing is done of + both valid results and parsing exceptions. + + This speedup may break existing programs that use parse actions that + have side-effects. For this reason, packrat parsing is disabled when + you first import pyparsing. To activate the packrat feature, your + program must call the class method C{ParserElement.enablePackrat()}. If + your program uses C{psyco} to "compile as you go", you must call + C{enablePackrat} before calling C{psyco.full()}. If you do not do this, + Python will crash. For best results, call C{enablePackrat()} immediately + after importing pyparsing. + """ + if not ParserElement._packratEnabled: + ParserElement._packratEnabled = True + ParserElement._parse = ParserElement._parseCache + enablePackrat = staticmethod(enablePackrat) + + def parseString( self, instring, parseAll=False ): + """Execute the parse expression with the given string. + This is the main interface to the client code, once the complete + expression has been built. + + If you want the grammar to require that the entire input string be + successfully parsed, then set C{parseAll} to True (equivalent to ending + the grammar with C{StringEnd()}). + + Note: C{parseString} implicitly calls C{expandtabs()} on the input string, + in order to report proper column numbers in parse actions. + If the input string contains tabs and + the grammar uses parse actions that use the C{loc} argument to index into the + string being parsed, you can ensure you have a consistent view of the input + string by: + - calling C{parseWithTabs} on your grammar before calling C{parseString} + (see L{I{parseWithTabs}}) + - define your parse action using the full C{(s,loc,toks)} signature, and + reference the input string using the parse action's C{s} argument + - explictly expand the tabs in your input string before calling + C{parseString} + """ + ParserElement.resetCache() + if not self.streamlined: + self.streamline() + #~ self.saveAsList = True + for e in self.ignoreExprs: + e.streamline() + if not self.keepTabs: + instring = instring.expandtabs() + try: + loc, tokens = self._parse( instring, 0 ) + if parseAll: + loc = self.preParse( instring, loc ) + se = Empty() + StringEnd() + se._parse( instring, loc ) + except ParseBaseException: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + exc = sys.exc_info()[1] + raise exc + else: + return tokens + + def scanString( self, instring, maxMatches=_MAX_INT, overlap=False ): + """Scan the input string for expression matches. Each match will return the + matching tokens, start location, and end location. May be called with optional + C{maxMatches} argument, to clip scanning after 'n' matches are found. If + C{overlap} is specified, then overlapping matches will be reported. + + Note that the start and end locations are reported relative to the string + being parsed. See L{I{parseString}} for more information on parsing + strings with embedded tabs.""" + if not self.streamlined: + self.streamline() + for e in self.ignoreExprs: + e.streamline() + + if not self.keepTabs: + instring = _ustr(instring).expandtabs() + instrlen = len(instring) + loc = 0 + preparseFn = self.preParse + parseFn = self._parse + ParserElement.resetCache() + matches = 0 + try: + while loc <= instrlen and matches < maxMatches: + try: + preloc = preparseFn( instring, loc ) + nextLoc,tokens = parseFn( instring, preloc, callPreParse=False ) + except ParseException: + loc = preloc+1 + else: + if nextLoc > loc: + matches += 1 + yield tokens, preloc, nextLoc + if overlap: + nextloc = preparseFn( instring, loc ) + if nextloc > loc: + loc = nextLoc + else: + loc += 1 + else: + loc = nextLoc + else: + loc = preloc+1 + except ParseBaseException: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + exc = sys.exc_info()[1] + raise exc + + def transformString( self, instring ): + """Extension to C{scanString}, to modify matching text with modified tokens that may + be returned from a parse action. To use C{transformString}, define a grammar and + attach a parse action to it that modifies the returned token list. + Invoking C{transformString()} on a target string will then scan for matches, + and replace the matched text patterns according to the logic in the parse + action. C{transformString()} returns the resulting transformed string.""" + out = [] + lastE = 0 + # force preservation of s, to minimize unwanted transformation of string, and to + # keep string locs straight between transformString and scanString + self.keepTabs = True + try: + for t,s,e in self.scanString( instring ): + out.append( instring[lastE:s] ) + if t: + if isinstance(t,ParseResults): + out += t.asList() + elif isinstance(t,list): + out += t + else: + out.append(t) + lastE = e + out.append(instring[lastE:]) + out = [o for o in out if o] + return "".join(map(_ustr,_flatten(out))) + except ParseBaseException: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + exc = sys.exc_info()[1] + raise exc + + def searchString( self, instring, maxMatches=_MAX_INT ): + """Another extension to C{scanString}, simplifying the access to the tokens found + to match the given parse expression. May be called with optional + C{maxMatches} argument, to clip searching after 'n' matches are found. + """ + try: + return ParseResults([ t for t,s,e in self.scanString( instring, maxMatches ) ]) + except ParseBaseException: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + exc = sys.exc_info()[1] + raise exc + + def __add__(self, other ): + """Implementation of + operator - returns And""" + if isinstance( other, basestring ): + other = Literal( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return And( [ self, other ] ) + + def __radd__(self, other ): + """Implementation of + operator when left operand is not a C{ParserElement}""" + if isinstance( other, basestring ): + other = Literal( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return other + self + + def __sub__(self, other): + """Implementation of - operator, returns C{And} with error stop""" + if isinstance( other, basestring ): + other = Literal( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return And( [ self, And._ErrorStop(), other ] ) + + def __rsub__(self, other ): + """Implementation of - operator when left operand is not a C{ParserElement}""" + if isinstance( other, basestring ): + other = Literal( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return other - self + + def __mul__(self,other): + """Implementation of * operator, allows use of C{expr * 3} in place of + C{expr + expr + expr}. Expressions may also me multiplied by a 2-integer + tuple, similar to C{{min,max}} multipliers in regular expressions. Tuples + may also include C{None} as in: + - C{expr*(n,None)} or C{expr*(n,)} is equivalent + to C{expr*n + ZeroOrMore(expr)} + (read as "at least n instances of C{expr}") + - C{expr*(None,n)} is equivalent to C{expr*(0,n)} + (read as "0 to n instances of C{expr}") + - C{expr*(None,None)} is equivalent to C{ZeroOrMore(expr)} + - C{expr*(1,None)} is equivalent to C{OneOrMore(expr)} + + Note that C{expr*(None,n)} does not raise an exception if + more than n exprs exist in the input stream; that is, + C{expr*(None,n)} does not enforce a maximum number of expr + occurrences. If this behavior is desired, then write + C{expr*(None,n) + ~expr} + + """ + if isinstance(other,int): + minElements, optElements = other,0 + elif isinstance(other,tuple): + other = (other + (None, None))[:2] + if other[0] is None: + other = (0, other[1]) + if isinstance(other[0],int) and other[1] is None: + if other[0] == 0: + return ZeroOrMore(self) + if other[0] == 1: + return OneOrMore(self) + else: + return self*other[0] + ZeroOrMore(self) + elif isinstance(other[0],int) and isinstance(other[1],int): + minElements, optElements = other + optElements -= minElements + else: + raise TypeError("cannot multiply 'ParserElement' and ('%s','%s') objects", type(other[0]),type(other[1])) + else: + raise TypeError("cannot multiply 'ParserElement' and '%s' objects", type(other)) + + if minElements < 0: + raise ValueError("cannot multiply ParserElement by negative value") + if optElements < 0: + raise ValueError("second tuple value must be greater or equal to first tuple value") + if minElements == optElements == 0: + raise ValueError("cannot multiply ParserElement by 0 or (0,0)") + + if (optElements): + def makeOptionalList(n): + if n>1: + return Optional(self + makeOptionalList(n-1)) + else: + return Optional(self) + if minElements: + if minElements == 1: + ret = self + makeOptionalList(optElements) + else: + ret = And([self]*minElements) + makeOptionalList(optElements) + else: + ret = makeOptionalList(optElements) + else: + if minElements == 1: + ret = self + else: + ret = And([self]*minElements) + return ret + + def __rmul__(self, other): + return self.__mul__(other) + + def __or__(self, other ): + """Implementation of | operator - returns C{MatchFirst}""" + if isinstance( other, basestring ): + other = Literal( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return MatchFirst( [ self, other ] ) + + def __ror__(self, other ): + """Implementation of | operator when left operand is not a C{ParserElement}""" + if isinstance( other, basestring ): + other = Literal( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return other | self + + def __xor__(self, other ): + """Implementation of ^ operator - returns C{Or}""" + if isinstance( other, basestring ): + other = Literal( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return Or( [ self, other ] ) + + def __rxor__(self, other ): + """Implementation of ^ operator when left operand is not a C{ParserElement}""" + if isinstance( other, basestring ): + other = Literal( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return other ^ self + + def __and__(self, other ): + """Implementation of & operator - returns C{Each}""" + if isinstance( other, basestring ): + other = Literal( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return Each( [ self, other ] ) + + def __rand__(self, other ): + """Implementation of & operator when left operand is not a C{ParserElement}""" + if isinstance( other, basestring ): + other = Literal( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return other & self + + def __invert__( self ): + """Implementation of ~ operator - returns C{NotAny}""" + return NotAny( self ) + + def __call__(self, name): + """Shortcut for C{setResultsName}, with C{listAllMatches=default}:: + userdata = Word(alphas).setResultsName("name") + Word(nums+"-").setResultsName("socsecno") + could be written as:: + userdata = Word(alphas)("name") + Word(nums+"-")("socsecno") + + If C{name} is given with a trailing C{'*'} character, then C{listAllMatches} will be + passed as C{True}. + """ + return self.setResultsName(name) + + def suppress( self ): + """Suppresses the output of this C{ParserElement}; useful to keep punctuation from + cluttering up returned output. + """ + return Suppress( self ) + + def leaveWhitespace( self ): + """Disables the skipping of whitespace before matching the characters in the + C{ParserElement}'s defined pattern. This is normally only used internally by + the pyparsing module, but may be needed in some whitespace-sensitive grammars. + """ + self.skipWhitespace = False + return self + + def setWhitespaceChars( self, chars ): + """Overrides the default whitespace chars + """ + self.skipWhitespace = True + self.whiteChars = chars + self.copyDefaultWhiteChars = False + return self + + def parseWithTabs( self ): + """Overrides default behavior to expand C{}s to spaces before parsing the input string. + Must be called before C{parseString} when the input grammar contains elements that + match C{} characters.""" + self.keepTabs = True + return self + + def ignore( self, other ): + """Define expression to be ignored (e.g., comments) while doing pattern + matching; may be called repeatedly, to define multiple comment or other + ignorable patterns. + """ + if isinstance( other, Suppress ): + if other not in self.ignoreExprs: + self.ignoreExprs.append( other.copy() ) + else: + self.ignoreExprs.append( Suppress( other.copy() ) ) + return self + + def setDebugActions( self, startAction, successAction, exceptionAction ): + """Enable display of debugging messages while doing pattern matching.""" + self.debugActions = (startAction or _defaultStartDebugAction, + successAction or _defaultSuccessDebugAction, + exceptionAction or _defaultExceptionDebugAction) + self.debug = True + return self + + def setDebug( self, flag=True ): + """Enable display of debugging messages while doing pattern matching. + Set C{flag} to True to enable, False to disable.""" + if flag: + self.setDebugActions( _defaultStartDebugAction, _defaultSuccessDebugAction, _defaultExceptionDebugAction ) + else: + self.debug = False + return self + + def __str__( self ): + return self.name + + def __repr__( self ): + return _ustr(self) + + def streamline( self ): + self.streamlined = True + self.strRepr = None + return self + + def checkRecursion( self, parseElementList ): + pass + + def validate( self, validateTrace=[] ): + """Check defined expressions for valid structure, check for infinite recursive definitions.""" + self.checkRecursion( [] ) + + def parseFile( self, file_or_filename, parseAll=False ): + """Execute the parse expression on the given file or filename. + If a filename is specified (instead of a file object), + the entire file is opened, read, and closed before parsing. + """ + try: + file_contents = file_or_filename.read() + except AttributeError: + f = open(file_or_filename, "rb") + file_contents = f.read() + f.close() + try: + return self.parseString(file_contents, parseAll) + except ParseBaseException: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + exc = sys.exc_info()[1] + raise exc + + def getException(self): + return ParseException("",0,self.errmsg,self) + + def __getattr__(self,aname): + if aname == "myException": + self.myException = ret = self.getException(); + return ret; + else: + raise AttributeError("no such attribute " + aname) + + def __eq__(self,other): + if isinstance(other, ParserElement): + return self is other or self.__dict__ == other.__dict__ + elif isinstance(other, basestring): + try: + self.parseString(_ustr(other), parseAll=True) + return True + except ParseBaseException: + return False + else: + return super(ParserElement,self)==other + + def __ne__(self,other): + return not (self == other) + + def __hash__(self): + return hash(id(self)) + + def __req__(self,other): + return self == other + + def __rne__(self,other): + return not (self == other) + + +class Token(ParserElement): + """Abstract C{ParserElement} subclass, for defining atomic matching patterns.""" + def __init__( self ): + super(Token,self).__init__( savelist=False ) + + def setName(self, name): + s = super(Token,self).setName(name) + self.errmsg = "Expected " + self.name + return s + + +class Empty(Token): + """An empty token, will always match.""" + def __init__( self ): + super(Empty,self).__init__() + self.name = "Empty" + self.mayReturnEmpty = True + self.mayIndexError = False + + +class NoMatch(Token): + """A token that will never match.""" + def __init__( self ): + super(NoMatch,self).__init__() + self.name = "NoMatch" + self.mayReturnEmpty = True + self.mayIndexError = False + self.errmsg = "Unmatchable token" + + def parseImpl( self, instring, loc, doActions=True ): + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + + +class Literal(Token): + """Token to exactly match a specified string.""" + def __init__( self, matchString ): + super(Literal,self).__init__() + self.match = matchString + self.matchLen = len(matchString) + try: + self.firstMatchChar = matchString[0] + except IndexError: + warnings.warn("null string passed to Literal; use Empty() instead", + SyntaxWarning, stacklevel=2) + self.__class__ = Empty + self.name = '"%s"' % _ustr(self.match) + self.errmsg = "Expected " + self.name + self.mayReturnEmpty = False + self.mayIndexError = False + + # Performance tuning: this routine gets called a *lot* + # if this is a single character match string and the first character matches, + # short-circuit as quickly as possible, and avoid calling startswith + #~ @profile + def parseImpl( self, instring, loc, doActions=True ): + if (instring[loc] == self.firstMatchChar and + (self.matchLen==1 or instring.startswith(self.match,loc)) ): + return loc+self.matchLen, self.match + #~ raise ParseException( instring, loc, self.errmsg ) + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc +_L = Literal + +class Keyword(Token): + """Token to exactly match a specified string as a keyword, that is, it must be + immediately followed by a non-keyword character. Compare with C{Literal}:: + Literal("if") will match the leading C{'if'} in C{'ifAndOnlyIf'}. + Keyword("if") will not; it will only match the leading C{'if'} in C{'if x=1'}, or C{'if(y==2)'} + Accepts two optional constructor arguments in addition to the keyword string: + C{identChars} is a string of characters that would be valid identifier characters, + defaulting to all alphanumerics + "_" and "$"; C{caseless} allows case-insensitive + matching, default is C{False}. + """ + DEFAULT_KEYWORD_CHARS = alphanums+"_$" + + def __init__( self, matchString, identChars=DEFAULT_KEYWORD_CHARS, caseless=False ): + super(Keyword,self).__init__() + self.match = matchString + self.matchLen = len(matchString) + try: + self.firstMatchChar = matchString[0] + except IndexError: + warnings.warn("null string passed to Keyword; use Empty() instead", + SyntaxWarning, stacklevel=2) + self.name = '"%s"' % self.match + self.errmsg = "Expected " + self.name + self.mayReturnEmpty = False + self.mayIndexError = False + self.caseless = caseless + if caseless: + self.caselessmatch = matchString.upper() + identChars = identChars.upper() + self.identChars = set(identChars) + + def parseImpl( self, instring, loc, doActions=True ): + if self.caseless: + if ( (instring[ loc:loc+self.matchLen ].upper() == self.caselessmatch) and + (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen].upper() not in self.identChars) and + (loc == 0 or instring[loc-1].upper() not in self.identChars) ): + return loc+self.matchLen, self.match + else: + if (instring[loc] == self.firstMatchChar and + (self.matchLen==1 or instring.startswith(self.match,loc)) and + (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen] not in self.identChars) and + (loc == 0 or instring[loc-1] not in self.identChars) ): + return loc+self.matchLen, self.match + #~ raise ParseException( instring, loc, self.errmsg ) + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + + def copy(self): + c = super(Keyword,self).copy() + c.identChars = Keyword.DEFAULT_KEYWORD_CHARS + return c + + def setDefaultKeywordChars( chars ): + """Overrides the default Keyword chars + """ + Keyword.DEFAULT_KEYWORD_CHARS = chars + setDefaultKeywordChars = staticmethod(setDefaultKeywordChars) + +class CaselessLiteral(Literal): + """Token to match a specified string, ignoring case of letters. + Note: the matched results will always be in the case of the given + match string, NOT the case of the input text. + """ + def __init__( self, matchString ): + super(CaselessLiteral,self).__init__( matchString.upper() ) + # Preserve the defining literal. + self.returnString = matchString + self.name = "'%s'" % self.returnString + self.errmsg = "Expected " + self.name + + def parseImpl( self, instring, loc, doActions=True ): + if instring[ loc:loc+self.matchLen ].upper() == self.match: + return loc+self.matchLen, self.returnString + #~ raise ParseException( instring, loc, self.errmsg ) + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + +class CaselessKeyword(Keyword): + def __init__( self, matchString, identChars=Keyword.DEFAULT_KEYWORD_CHARS ): + super(CaselessKeyword,self).__init__( matchString, identChars, caseless=True ) + + def parseImpl( self, instring, loc, doActions=True ): + if ( (instring[ loc:loc+self.matchLen ].upper() == self.caselessmatch) and + (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen].upper() not in self.identChars) ): + return loc+self.matchLen, self.match + #~ raise ParseException( instring, loc, self.errmsg ) + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + +class Word(Token): + """Token for matching words composed of allowed character sets. + Defined with string containing all allowed initial characters, + an optional string containing allowed body characters (if omitted, + defaults to the initial character set), and an optional minimum, + maximum, and/or exact length. The default value for C{min} is 1 (a + minimum value < 1 is not valid); the default values for C{max} and C{exact} + are 0, meaning no maximum or exact length restriction. An optional + C{exclude} parameter can list characters that might be found in + the input C{bodyChars} string; useful to define a word of all printables + except for one or two characters, for instance. + """ + def __init__( self, initChars, bodyChars=None, min=1, max=0, exact=0, asKeyword=False, excludeChars=None ): + super(Word,self).__init__() + if excludeChars: + initChars = ''.join([c for c in initChars if c not in excludeChars]) + if bodyChars: + bodyChars = ''.join([c for c in bodyChars if c not in excludeChars]) + self.initCharsOrig = initChars + self.initChars = set(initChars) + if bodyChars : + self.bodyCharsOrig = bodyChars + self.bodyChars = set(bodyChars) + else: + self.bodyCharsOrig = initChars + self.bodyChars = set(initChars) + + self.maxSpecified = max > 0 + + if min < 1: + raise ValueError("cannot specify a minimum length < 1; use Optional(Word()) if zero-length word is permitted") + + self.minLen = min + + if max > 0: + self.maxLen = max + else: + self.maxLen = _MAX_INT + + if exact > 0: + self.maxLen = exact + self.minLen = exact + + self.name = _ustr(self) + self.errmsg = "Expected " + self.name + self.mayIndexError = False + self.asKeyword = asKeyword + + if ' ' not in self.initCharsOrig+self.bodyCharsOrig and (min==1 and max==0 and exact==0): + if self.bodyCharsOrig == self.initCharsOrig: + self.reString = "[%s]+" % _escapeRegexRangeChars(self.initCharsOrig) + elif len(self.bodyCharsOrig) == 1: + self.reString = "%s[%s]*" % \ + (re.escape(self.initCharsOrig), + _escapeRegexRangeChars(self.bodyCharsOrig),) + else: + self.reString = "[%s][%s]*" % \ + (_escapeRegexRangeChars(self.initCharsOrig), + _escapeRegexRangeChars(self.bodyCharsOrig),) + if self.asKeyword: + self.reString = r"\b"+self.reString+r"\b" + try: + self.re = re.compile( self.reString ) + except: + self.re = None + + def parseImpl( self, instring, loc, doActions=True ): + if self.re: + result = self.re.match(instring,loc) + if not result: + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + + loc = result.end() + return loc, result.group() + + if not(instring[ loc ] in self.initChars): + #~ raise ParseException( instring, loc, self.errmsg ) + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + start = loc + loc += 1 + instrlen = len(instring) + bodychars = self.bodyChars + maxloc = start + self.maxLen + maxloc = min( maxloc, instrlen ) + while loc < maxloc and instring[loc] in bodychars: + loc += 1 + + throwException = False + if loc - start < self.minLen: + throwException = True + if self.maxSpecified and loc < instrlen and instring[loc] in bodychars: + throwException = True + if self.asKeyword: + if (start>0 and instring[start-1] in bodychars) or (loc4: + return s[:4]+"..." + else: + return s + + if ( self.initCharsOrig != self.bodyCharsOrig ): + self.strRepr = "W:(%s,%s)" % ( charsAsStr(self.initCharsOrig), charsAsStr(self.bodyCharsOrig) ) + else: + self.strRepr = "W:(%s)" % charsAsStr(self.initCharsOrig) + + return self.strRepr + + +class Regex(Token): + """Token for matching strings that match a given regular expression. + Defined with string specifying the regular expression in a form recognized by the inbuilt Python re module. + """ + compiledREtype = type(re.compile("[A-Z]")) + def __init__( self, pattern, flags=0): + """The parameters C{pattern} and C{flags} are passed to the C{re.compile()} function as-is. See the Python C{re} module for an explanation of the acceptable patterns and flags.""" + super(Regex,self).__init__() + + if isinstance(pattern, basestring): + if len(pattern) == 0: + warnings.warn("null string passed to Regex; use Empty() instead", + SyntaxWarning, stacklevel=2) + + self.pattern = pattern + self.flags = flags + + try: + self.re = re.compile(self.pattern, self.flags) + self.reString = self.pattern + except sre_constants.error: + warnings.warn("invalid pattern (%s) passed to Regex" % pattern, + SyntaxWarning, stacklevel=2) + raise + + elif isinstance(pattern, Regex.compiledREtype): + self.re = pattern + self.pattern = \ + self.reString = str(pattern) + self.flags = flags + + else: + raise ValueError("Regex may only be constructed with a string or a compiled RE object") + + self.name = _ustr(self) + self.errmsg = "Expected " + self.name + self.mayIndexError = False + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + result = self.re.match(instring,loc) + if not result: + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + + loc = result.end() + d = result.groupdict() + ret = ParseResults(result.group()) + if d: + for k in d: + ret[k] = d[k] + return loc,ret + + def __str__( self ): + try: + return super(Regex,self).__str__() + except: + pass + + if self.strRepr is None: + self.strRepr = "Re:(%s)" % repr(self.pattern) + + return self.strRepr + + +class QuotedString(Token): + """Token for matching strings that are delimited by quoting characters. + """ + def __init__( self, quoteChar, escChar=None, escQuote=None, multiline=False, unquoteResults=True, endQuoteChar=None): + """ + Defined with the following parameters: + - quoteChar - string of one or more characters defining the quote delimiting string + - escChar - character to escape quotes, typically backslash (default=None) + - escQuote - special quote sequence to escape an embedded quote string (such as SQL's "" to escape an embedded ") (default=None) + - multiline - boolean indicating whether quotes can span multiple lines (default=False) + - unquoteResults - boolean indicating whether the matched text should be unquoted (default=True) + - endQuoteChar - string of one or more characters defining the end of the quote delimited string (default=None => same as quoteChar) + """ + super(QuotedString,self).__init__() + + # remove white space from quote chars - wont work anyway + quoteChar = quoteChar.strip() + if len(quoteChar) == 0: + warnings.warn("quoteChar cannot be the empty string",SyntaxWarning,stacklevel=2) + raise SyntaxError() + + if endQuoteChar is None: + endQuoteChar = quoteChar + else: + endQuoteChar = endQuoteChar.strip() + if len(endQuoteChar) == 0: + warnings.warn("endQuoteChar cannot be the empty string",SyntaxWarning,stacklevel=2) + raise SyntaxError() + + self.quoteChar = quoteChar + self.quoteCharLen = len(quoteChar) + self.firstQuoteChar = quoteChar[0] + self.endQuoteChar = endQuoteChar + self.endQuoteCharLen = len(endQuoteChar) + self.escChar = escChar + self.escQuote = escQuote + self.unquoteResults = unquoteResults + + if multiline: + self.flags = re.MULTILINE | re.DOTALL + self.pattern = r'%s(?:[^%s%s]' % \ + ( re.escape(self.quoteChar), + _escapeRegexRangeChars(self.endQuoteChar[0]), + (escChar is not None and _escapeRegexRangeChars(escChar) or '') ) + else: + self.flags = 0 + self.pattern = r'%s(?:[^%s\n\r%s]' % \ + ( re.escape(self.quoteChar), + _escapeRegexRangeChars(self.endQuoteChar[0]), + (escChar is not None and _escapeRegexRangeChars(escChar) or '') ) + if len(self.endQuoteChar) > 1: + self.pattern += ( + '|(?:' + ')|(?:'.join(["%s[^%s]" % (re.escape(self.endQuoteChar[:i]), + _escapeRegexRangeChars(self.endQuoteChar[i])) + for i in range(len(self.endQuoteChar)-1,0,-1)]) + ')' + ) + if escQuote: + self.pattern += (r'|(?:%s)' % re.escape(escQuote)) + if escChar: + self.pattern += (r'|(?:%s.)' % re.escape(escChar)) + charset = ''.join(set(self.quoteChar[0]+self.endQuoteChar[0])).replace('^',r'\^').replace('-',r'\-') + self.escCharReplacePattern = re.escape(self.escChar)+("([%s])" % charset) + self.pattern += (r')*%s' % re.escape(self.endQuoteChar)) + + try: + self.re = re.compile(self.pattern, self.flags) + self.reString = self.pattern + except sre_constants.error: + warnings.warn("invalid pattern (%s) passed to Regex" % self.pattern, + SyntaxWarning, stacklevel=2) + raise + + self.name = _ustr(self) + self.errmsg = "Expected " + self.name + self.mayIndexError = False + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + result = instring[loc] == self.firstQuoteChar and self.re.match(instring,loc) or None + if not result: + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + + loc = result.end() + ret = result.group() + + if self.unquoteResults: + + # strip off quotes + ret = ret[self.quoteCharLen:-self.endQuoteCharLen] + + if isinstance(ret,basestring): + # replace escaped characters + if self.escChar: + ret = re.sub(self.escCharReplacePattern,"\g<1>",ret) + + # replace escaped quotes + if self.escQuote: + ret = ret.replace(self.escQuote, self.endQuoteChar) + + return loc, ret + + def __str__( self ): + try: + return super(QuotedString,self).__str__() + except: + pass + + if self.strRepr is None: + self.strRepr = "quoted string, starting with %s ending with %s" % (self.quoteChar, self.endQuoteChar) + + return self.strRepr + + +class CharsNotIn(Token): + """Token for matching words composed of characters *not* in a given set. + Defined with string containing all disallowed characters, and an optional + minimum, maximum, and/or exact length. The default value for C{min} is 1 (a + minimum value < 1 is not valid); the default values for C{max} and C{exact} + are 0, meaning no maximum or exact length restriction. + """ + def __init__( self, notChars, min=1, max=0, exact=0 ): + super(CharsNotIn,self).__init__() + self.skipWhitespace = False + self.notChars = notChars + + if min < 1: + raise ValueError("cannot specify a minimum length < 1; use Optional(CharsNotIn()) if zero-length char group is permitted") + + self.minLen = min + + if max > 0: + self.maxLen = max + else: + self.maxLen = _MAX_INT + + if exact > 0: + self.maxLen = exact + self.minLen = exact + + self.name = _ustr(self) + self.errmsg = "Expected " + self.name + self.mayReturnEmpty = ( self.minLen == 0 ) + self.mayIndexError = False + + def parseImpl( self, instring, loc, doActions=True ): + if instring[loc] in self.notChars: + #~ raise ParseException( instring, loc, self.errmsg ) + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + + start = loc + loc += 1 + notchars = self.notChars + maxlen = min( start+self.maxLen, len(instring) ) + while loc < maxlen and \ + (instring[loc] not in notchars): + loc += 1 + + if loc - start < self.minLen: + #~ raise ParseException( instring, loc, self.errmsg ) + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + + return loc, instring[start:loc] + + def __str__( self ): + try: + return super(CharsNotIn, self).__str__() + except: + pass + + if self.strRepr is None: + if len(self.notChars) > 4: + self.strRepr = "!W:(%s...)" % self.notChars[:4] + else: + self.strRepr = "!W:(%s)" % self.notChars + + return self.strRepr + +class White(Token): + """Special matching class for matching whitespace. Normally, whitespace is ignored + by pyparsing grammars. This class is included when some whitespace structures + are significant. Define with a string containing the whitespace characters to be + matched; default is C{" \\t\\r\\n"}. Also takes optional C{min}, C{max}, and C{exact} arguments, + as defined for the C{Word} class.""" + whiteStrs = { + " " : "", + "\t": "", + "\n": "", + "\r": "", + "\f": "", + } + def __init__(self, ws=" \t\r\n", min=1, max=0, exact=0): + super(White,self).__init__() + self.matchWhite = ws + self.setWhitespaceChars( "".join([c for c in self.whiteChars if c not in self.matchWhite]) ) + #~ self.leaveWhitespace() + self.name = ("".join([White.whiteStrs[c] for c in self.matchWhite])) + self.mayReturnEmpty = True + self.errmsg = "Expected " + self.name + + self.minLen = min + + if max > 0: + self.maxLen = max + else: + self.maxLen = _MAX_INT + + if exact > 0: + self.maxLen = exact + self.minLen = exact + + def parseImpl( self, instring, loc, doActions=True ): + if not(instring[ loc ] in self.matchWhite): + #~ raise ParseException( instring, loc, self.errmsg ) + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + start = loc + loc += 1 + maxloc = start + self.maxLen + maxloc = min( maxloc, len(instring) ) + while loc < maxloc and instring[loc] in self.matchWhite: + loc += 1 + + if loc - start < self.minLen: + #~ raise ParseException( instring, loc, self.errmsg ) + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + + return loc, instring[start:loc] + + +class _PositionToken(Token): + def __init__( self ): + super(_PositionToken,self).__init__() + self.name=self.__class__.__name__ + self.mayReturnEmpty = True + self.mayIndexError = False + +class GoToColumn(_PositionToken): + """Token to advance to a specific column of input text; useful for tabular report scraping.""" + def __init__( self, colno ): + super(GoToColumn,self).__init__() + self.col = colno + + def preParse( self, instring, loc ): + if col(loc,instring) != self.col: + instrlen = len(instring) + if self.ignoreExprs: + loc = self._skipIgnorables( instring, loc ) + while loc < instrlen and instring[loc].isspace() and col( loc, instring ) != self.col : + loc += 1 + return loc + + def parseImpl( self, instring, loc, doActions=True ): + thiscol = col( loc, instring ) + if thiscol > self.col: + raise ParseException( instring, loc, "Text not in expected column", self ) + newloc = loc + self.col - thiscol + ret = instring[ loc: newloc ] + return newloc, ret + +class LineStart(_PositionToken): + """Matches if current position is at the beginning of a line within the parse string""" + def __init__( self ): + super(LineStart,self).__init__() + self.setWhitespaceChars( ParserElement.DEFAULT_WHITE_CHARS.replace("\n","") ) + self.errmsg = "Expected start of line" + + def preParse( self, instring, loc ): + preloc = super(LineStart,self).preParse(instring,loc) + if instring[preloc] == "\n": + loc += 1 + return loc + + def parseImpl( self, instring, loc, doActions=True ): + if not( loc==0 or + (loc == self.preParse( instring, 0 )) or + (instring[loc-1] == "\n") ): #col(loc, instring) != 1: + #~ raise ParseException( instring, loc, "Expected start of line" ) + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + return loc, [] + +class LineEnd(_PositionToken): + """Matches if current position is at the end of a line within the parse string""" + def __init__( self ): + super(LineEnd,self).__init__() + self.setWhitespaceChars( ParserElement.DEFAULT_WHITE_CHARS.replace("\n","") ) + self.errmsg = "Expected end of line" + + def parseImpl( self, instring, loc, doActions=True ): + if loc len(instring): + return loc, [] + else: + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + +class WordStart(_PositionToken): + """Matches if the current position is at the beginning of a Word, and + is not preceded by any character in a given set of C{wordChars} + (default=C{printables}). To emulate the C{\b} behavior of regular expressions, + use C{WordStart(alphanums)}. C{WordStart} will also match at the beginning of + the string being parsed, or at the beginning of a line. + """ + def __init__(self, wordChars = printables): + super(WordStart,self).__init__() + self.wordChars = set(wordChars) + self.errmsg = "Not at the start of a word" + + def parseImpl(self, instring, loc, doActions=True ): + if loc != 0: + if (instring[loc-1] in self.wordChars or + instring[loc] not in self.wordChars): + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + return loc, [] + +class WordEnd(_PositionToken): + """Matches if the current position is at the end of a Word, and + is not followed by any character in a given set of C{wordChars} + (default=C{printables}). To emulate the C{\b} behavior of regular expressions, + use C{WordEnd(alphanums)}. C{WordEnd} will also match at the end of + the string being parsed, or at the end of a line. + """ + def __init__(self, wordChars = printables): + super(WordEnd,self).__init__() + self.wordChars = set(wordChars) + self.skipWhitespace = False + self.errmsg = "Not at the end of a word" + + def parseImpl(self, instring, loc, doActions=True ): + instrlen = len(instring) + if instrlen>0 and loc maxExcLoc: + maxException = err + maxExcLoc = err.loc + except IndexError: + if len(instring) > maxExcLoc: + maxException = ParseException(instring,len(instring),e.errmsg,self) + maxExcLoc = len(instring) + else: + if loc2 > maxMatchLoc: + maxMatchLoc = loc2 + maxMatchExp = e + + if maxMatchLoc < 0: + if maxException is not None: + raise maxException + else: + raise ParseException(instring, loc, "no defined alternatives to match", self) + + return maxMatchExp._parse( instring, loc, doActions ) + + def __ixor__(self, other ): + if isinstance( other, basestring ): + other = Literal( other ) + return self.append( other ) #Or( [ self, other ] ) + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "{" + " ^ ".join( [ _ustr(e) for e in self.exprs ] ) + "}" + + return self.strRepr + + def checkRecursion( self, parseElementList ): + subRecCheckList = parseElementList[:] + [ self ] + for e in self.exprs: + e.checkRecursion( subRecCheckList ) + + +class MatchFirst(ParseExpression): + """Requires that at least one C{ParseExpression} is found. + If two expressions match, the first one listed is the one that will match. + May be constructed using the C{'|'} operator. + """ + def __init__( self, exprs, savelist = False ): + super(MatchFirst,self).__init__(exprs, savelist) + if exprs: + self.mayReturnEmpty = False + for e in self.exprs: + if e.mayReturnEmpty: + self.mayReturnEmpty = True + break + else: + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + maxExcLoc = -1 + maxException = None + for e in self.exprs: + try: + ret = e._parse( instring, loc, doActions ) + return ret + except ParseException, err: + if err.loc > maxExcLoc: + maxException = err + maxExcLoc = err.loc + except IndexError: + if len(instring) > maxExcLoc: + maxException = ParseException(instring,len(instring),e.errmsg,self) + maxExcLoc = len(instring) + + # only got here if no expression matched, raise exception for match that made it the furthest + else: + if maxException is not None: + raise maxException + else: + raise ParseException(instring, loc, "no defined alternatives to match", self) + + def __ior__(self, other ): + if isinstance( other, basestring ): + other = Literal( other ) + return self.append( other ) #MatchFirst( [ self, other ] ) + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "{" + " | ".join( [ _ustr(e) for e in self.exprs ] ) + "}" + + return self.strRepr + + def checkRecursion( self, parseElementList ): + subRecCheckList = parseElementList[:] + [ self ] + for e in self.exprs: + e.checkRecursion( subRecCheckList ) + + +class Each(ParseExpression): + """Requires all given C{ParseExpression}s to be found, but in any order. + Expressions may be separated by whitespace. + May be constructed using the C{'&'} operator. + """ + def __init__( self, exprs, savelist = True ): + super(Each,self).__init__(exprs, savelist) + self.mayReturnEmpty = True + for e in self.exprs: + if not e.mayReturnEmpty: + self.mayReturnEmpty = False + break + self.skipWhitespace = True + self.initExprGroups = True + + def parseImpl( self, instring, loc, doActions=True ): + if self.initExprGroups: + opt1 = [ e.expr for e in self.exprs if isinstance(e,Optional) ] + opt2 = [ e for e in self.exprs if e.mayReturnEmpty and e not in opt1 ] + self.optionals = opt1 + opt2 + self.multioptionals = [ e.expr for e in self.exprs if isinstance(e,ZeroOrMore) ] + self.multirequired = [ e.expr for e in self.exprs if isinstance(e,OneOrMore) ] + self.required = [ e for e in self.exprs if not isinstance(e,(Optional,ZeroOrMore,OneOrMore)) ] + self.required += self.multirequired + self.initExprGroups = False + tmpLoc = loc + tmpReqd = self.required[:] + tmpOpt = self.optionals[:] + matchOrder = [] + + keepMatching = True + while keepMatching: + tmpExprs = tmpReqd + tmpOpt + self.multioptionals + self.multirequired + failed = [] + for e in tmpExprs: + try: + tmpLoc = e.tryParse( instring, tmpLoc ) + except ParseException: + failed.append(e) + else: + matchOrder.append(e) + if e in tmpReqd: + tmpReqd.remove(e) + elif e in tmpOpt: + tmpOpt.remove(e) + if len(failed) == len(tmpExprs): + keepMatching = False + + if tmpReqd: + missing = ", ".join( [ _ustr(e) for e in tmpReqd ] ) + raise ParseException(instring,loc,"Missing one or more required elements (%s)" % missing ) + + # add any unmatched Optionals, in case they have default values defined + matchOrder += [e for e in self.exprs if isinstance(e,Optional) and e.expr in tmpOpt] + + resultlist = [] + for e in matchOrder: + loc,results = e._parse(instring,loc,doActions) + resultlist.append(results) + + finalResults = ParseResults([]) + for r in resultlist: + dups = {} + for k in r.keys(): + if k in finalResults.keys(): + tmp = ParseResults(finalResults[k]) + tmp += ParseResults(r[k]) + dups[k] = tmp + finalResults += ParseResults(r) + for k,v in dups.items(): + finalResults[k] = v + return loc, finalResults + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "{" + " & ".join( [ _ustr(e) for e in self.exprs ] ) + "}" + + return self.strRepr + + def checkRecursion( self, parseElementList ): + subRecCheckList = parseElementList[:] + [ self ] + for e in self.exprs: + e.checkRecursion( subRecCheckList ) + + +class ParseElementEnhance(ParserElement): + """Abstract subclass of C{ParserElement}, for combining and post-processing parsed tokens.""" + def __init__( self, expr, savelist=False ): + super(ParseElementEnhance,self).__init__(savelist) + if isinstance( expr, basestring ): + expr = Literal(expr) + self.expr = expr + self.strRepr = None + if expr is not None: + self.mayIndexError = expr.mayIndexError + self.mayReturnEmpty = expr.mayReturnEmpty + self.setWhitespaceChars( expr.whiteChars ) + self.skipWhitespace = expr.skipWhitespace + self.saveAsList = expr.saveAsList + self.callPreparse = expr.callPreparse + self.ignoreExprs.extend(expr.ignoreExprs) + + def parseImpl( self, instring, loc, doActions=True ): + if self.expr is not None: + return self.expr._parse( instring, loc, doActions, callPreParse=False ) + else: + raise ParseException("",loc,self.errmsg,self) + + def leaveWhitespace( self ): + self.skipWhitespace = False + self.expr = self.expr.copy() + if self.expr is not None: + self.expr.leaveWhitespace() + return self + + def ignore( self, other ): + if isinstance( other, Suppress ): + if other not in self.ignoreExprs: + super( ParseElementEnhance, self).ignore( other ) + if self.expr is not None: + self.expr.ignore( self.ignoreExprs[-1] ) + else: + super( ParseElementEnhance, self).ignore( other ) + if self.expr is not None: + self.expr.ignore( self.ignoreExprs[-1] ) + return self + + def streamline( self ): + super(ParseElementEnhance,self).streamline() + if self.expr is not None: + self.expr.streamline() + return self + + def checkRecursion( self, parseElementList ): + if self in parseElementList: + raise RecursiveGrammarException( parseElementList+[self] ) + subRecCheckList = parseElementList[:] + [ self ] + if self.expr is not None: + self.expr.checkRecursion( subRecCheckList ) + + def validate( self, validateTrace=[] ): + tmp = validateTrace[:]+[self] + if self.expr is not None: + self.expr.validate(tmp) + self.checkRecursion( [] ) + + def __str__( self ): + try: + return super(ParseElementEnhance,self).__str__() + except: + pass + + if self.strRepr is None and self.expr is not None: + self.strRepr = "%s:(%s)" % ( self.__class__.__name__, _ustr(self.expr) ) + return self.strRepr + + +class FollowedBy(ParseElementEnhance): + """Lookahead matching of the given parse expression. C{FollowedBy} + does *not* advance the parsing position within the input string, it only + verifies that the specified parse expression matches at the current + position. C{FollowedBy} always returns a null token list.""" + def __init__( self, expr ): + super(FollowedBy,self).__init__(expr) + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + self.expr.tryParse( instring, loc ) + return loc, [] + + +class NotAny(ParseElementEnhance): + """Lookahead to disallow matching with the given parse expression. C{NotAny} + does *not* advance the parsing position within the input string, it only + verifies that the specified parse expression does *not* match at the current + position. Also, C{NotAny} does *not* skip over leading whitespace. C{NotAny} + always returns a null token list. May be constructed using the '~' operator.""" + def __init__( self, expr ): + super(NotAny,self).__init__(expr) + #~ self.leaveWhitespace() + self.skipWhitespace = False # do NOT use self.leaveWhitespace(), don't want to propagate to exprs + self.mayReturnEmpty = True + self.errmsg = "Found unwanted token, "+_ustr(self.expr) + + def parseImpl( self, instring, loc, doActions=True ): + try: + self.expr.tryParse( instring, loc ) + except (ParseException,IndexError): + pass + else: + #~ raise ParseException(instring, loc, self.errmsg ) + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + return loc, [] + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "~{" + _ustr(self.expr) + "}" + + return self.strRepr + + +class ZeroOrMore(ParseElementEnhance): + """Optional repetition of zero or more of the given expression.""" + def __init__( self, expr ): + super(ZeroOrMore,self).__init__(expr) + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + tokens = [] + try: + loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False ) + hasIgnoreExprs = ( len(self.ignoreExprs) > 0 ) + while 1: + if hasIgnoreExprs: + preloc = self._skipIgnorables( instring, loc ) + else: + preloc = loc + loc, tmptokens = self.expr._parse( instring, preloc, doActions ) + if tmptokens or tmptokens.keys(): + tokens += tmptokens + except (ParseException,IndexError): + pass + + return loc, tokens + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "[" + _ustr(self.expr) + "]..." + + return self.strRepr + + def setResultsName( self, name, listAllMatches=False ): + ret = super(ZeroOrMore,self).setResultsName(name,listAllMatches) + ret.saveAsList = True + return ret + + +class OneOrMore(ParseElementEnhance): + """Repetition of one or more of the given expression.""" + def parseImpl( self, instring, loc, doActions=True ): + # must be at least one + loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False ) + try: + hasIgnoreExprs = ( len(self.ignoreExprs) > 0 ) + while 1: + if hasIgnoreExprs: + preloc = self._skipIgnorables( instring, loc ) + else: + preloc = loc + loc, tmptokens = self.expr._parse( instring, preloc, doActions ) + if tmptokens or tmptokens.keys(): + tokens += tmptokens + except (ParseException,IndexError): + pass + + return loc, tokens + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "{" + _ustr(self.expr) + "}..." + + return self.strRepr + + def setResultsName( self, name, listAllMatches=False ): + ret = super(OneOrMore,self).setResultsName(name,listAllMatches) + ret.saveAsList = True + return ret + +class _NullToken(object): + def __bool__(self): + return False + __nonzero__ = __bool__ + def __str__(self): + return "" + +_optionalNotMatched = _NullToken() +class Optional(ParseElementEnhance): + """Optional matching of the given expression. + A default return string can also be specified, if the optional expression + is not found. + """ + def __init__( self, exprs, default=_optionalNotMatched ): + super(Optional,self).__init__( exprs, savelist=False ) + self.defaultValue = default + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + try: + loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False ) + except (ParseException,IndexError): + if self.defaultValue is not _optionalNotMatched: + if self.expr.resultsName: + tokens = ParseResults([ self.defaultValue ]) + tokens[self.expr.resultsName] = self.defaultValue + else: + tokens = [ self.defaultValue ] + else: + tokens = [] + return loc, tokens + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "[" + _ustr(self.expr) + "]" + + return self.strRepr + + +class SkipTo(ParseElementEnhance): + """Token for skipping over all undefined text until the matched expression is found. + If C{include} is set to true, the matched expression is also parsed (the skipped text + and matched expression are returned as a 2-element list). The C{ignore} + argument is used to define grammars (typically quoted strings and comments) that + might contain false matches. + """ + def __init__( self, other, include=False, ignore=None, failOn=None ): + super( SkipTo, self ).__init__( other ) + self.ignoreExpr = ignore + self.mayReturnEmpty = True + self.mayIndexError = False + self.includeMatch = include + self.asList = False + if failOn is not None and isinstance(failOn, basestring): + self.failOn = Literal(failOn) + else: + self.failOn = failOn + self.errmsg = "No match found for "+_ustr(self.expr) + + def parseImpl( self, instring, loc, doActions=True ): + startLoc = loc + instrlen = len(instring) + expr = self.expr + failParse = False + while loc <= instrlen: + try: + if self.failOn: + try: + self.failOn.tryParse(instring, loc) + except ParseBaseException: + pass + else: + failParse = True + raise ParseException(instring, loc, "Found expression " + str(self.failOn)) + failParse = False + if self.ignoreExpr is not None: + while 1: + try: + loc = self.ignoreExpr.tryParse(instring,loc) + # print "found ignoreExpr, advance to", loc + except ParseBaseException: + break + expr._parse( instring, loc, doActions=False, callPreParse=False ) + skipText = instring[startLoc:loc] + if self.includeMatch: + loc,mat = expr._parse(instring,loc,doActions,callPreParse=False) + if mat: + skipRes = ParseResults( skipText ) + skipRes += mat + return loc, [ skipRes ] + else: + return loc, [ skipText ] + else: + return loc, [ skipText ] + except (ParseException,IndexError): + if failParse: + raise + else: + loc += 1 + exc = self.myException + exc.loc = loc + exc.pstr = instring + raise exc + +class Forward(ParseElementEnhance): + """Forward declaration of an expression to be defined later - + used for recursive grammars, such as algebraic infix notation. + When the expression is known, it is assigned to the C{Forward} variable using the '<<' operator. + + Note: take care when assigning to C{Forward} not to overlook precedence of operators. + Specifically, '|' has a lower precedence than '<<', so that:: + fwdExpr << a | b | c + will actually be evaluated as:: + (fwdExpr << a) | b | c + thereby leaving b and c out as parseable alternatives. It is recommended that you + explicitly group the values inserted into the C{Forward}:: + fwdExpr << (a | b | c) + """ + def __init__( self, other=None ): + super(Forward,self).__init__( other, savelist=False ) + + def __lshift__( self, other ): + if isinstance( other, basestring ): + other = Literal(other) + self.expr = other + self.mayReturnEmpty = other.mayReturnEmpty + self.strRepr = None + self.mayIndexError = self.expr.mayIndexError + self.mayReturnEmpty = self.expr.mayReturnEmpty + self.setWhitespaceChars( self.expr.whiteChars ) + self.skipWhitespace = self.expr.skipWhitespace + self.saveAsList = self.expr.saveAsList + self.ignoreExprs.extend(self.expr.ignoreExprs) + return None + + def leaveWhitespace( self ): + self.skipWhitespace = False + return self + + def streamline( self ): + if not self.streamlined: + self.streamlined = True + if self.expr is not None: + self.expr.streamline() + return self + + def validate( self, validateTrace=[] ): + if self not in validateTrace: + tmp = validateTrace[:]+[self] + if self.expr is not None: + self.expr.validate(tmp) + self.checkRecursion([]) + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + self._revertClass = self.__class__ + self.__class__ = _ForwardNoRecurse + try: + if self.expr is not None: + retString = _ustr(self.expr) + else: + retString = "None" + finally: + self.__class__ = self._revertClass + return self.__class__.__name__ + ": " + retString + + def copy(self): + if self.expr is not None: + return super(Forward,self).copy() + else: + ret = Forward() + ret << self + return ret + +class _ForwardNoRecurse(Forward): + def __str__( self ): + return "..." + +class TokenConverter(ParseElementEnhance): + """Abstract subclass of C{ParseExpression}, for converting parsed results.""" + def __init__( self, expr, savelist=False ): + super(TokenConverter,self).__init__( expr )#, savelist ) + self.saveAsList = False + +class Upcase(TokenConverter): + """Converter to upper case all matching tokens.""" + def __init__(self, *args): + super(Upcase,self).__init__(*args) + warnings.warn("Upcase class is deprecated, use upcaseTokens parse action instead", + DeprecationWarning,stacklevel=2) + + def postParse( self, instring, loc, tokenlist ): + return list(map( string.upper, tokenlist )) + + +class Combine(TokenConverter): + """Converter to concatenate all matching tokens to a single string. + By default, the matching patterns must also be contiguous in the input string; + this can be disabled by specifying C{'adjacent=False'} in the constructor. + """ + def __init__( self, expr, joinString="", adjacent=True ): + super(Combine,self).__init__( expr ) + # suppress whitespace-stripping in contained parse expressions, but re-enable it on the Combine itself + if adjacent: + self.leaveWhitespace() + self.adjacent = adjacent + self.skipWhitespace = True + self.joinString = joinString + self.callPreparse = True + + def ignore( self, other ): + if self.adjacent: + ParserElement.ignore(self, other) + else: + super( Combine, self).ignore( other ) + return self + + def postParse( self, instring, loc, tokenlist ): + retToks = tokenlist.copy() + del retToks[:] + retToks += ParseResults([ "".join(tokenlist._asStringList(self.joinString)) ], modal=self.modalResults) + + if self.resultsName and len(retToks.keys())>0: + return [ retToks ] + else: + return retToks + +class Group(TokenConverter): + """Converter to return the matched tokens as a list - useful for returning tokens of C{ZeroOrMore} and C{OneOrMore} expressions.""" + def __init__( self, expr ): + super(Group,self).__init__( expr ) + self.saveAsList = True + + def postParse( self, instring, loc, tokenlist ): + return [ tokenlist ] + +class Dict(TokenConverter): + """Converter to return a repetitive expression as a list, but also as a dictionary. + Each element can also be referenced using the first token in the expression as its key. + Useful for tabular report scraping when the first column can be used as a item key. + """ + def __init__( self, exprs ): + super(Dict,self).__init__( exprs ) + self.saveAsList = True + + def postParse( self, instring, loc, tokenlist ): + for i,tok in enumerate(tokenlist): + if len(tok) == 0: + continue + ikey = tok[0] + if isinstance(ikey,int): + ikey = _ustr(tok[0]).strip() + if len(tok)==1: + tokenlist[ikey] = _ParseResultsWithOffset("",i) + elif len(tok)==2 and not isinstance(tok[1],ParseResults): + tokenlist[ikey] = _ParseResultsWithOffset(tok[1],i) + else: + dictvalue = tok.copy() #ParseResults(i) + del dictvalue[0] + if len(dictvalue)!= 1 or (isinstance(dictvalue,ParseResults) and dictvalue.keys()): + tokenlist[ikey] = _ParseResultsWithOffset(dictvalue,i) + else: + tokenlist[ikey] = _ParseResultsWithOffset(dictvalue[0],i) + + if self.resultsName: + return [ tokenlist ] + else: + return tokenlist + + +class Suppress(TokenConverter): + """Converter for ignoring the results of a parsed expression.""" + def postParse( self, instring, loc, tokenlist ): + return [] + + def suppress( self ): + return self + + +class OnlyOnce(object): + """Wrapper for parse actions, to ensure they are only called once.""" + def __init__(self, methodCall): + self.callable = _trim_arity(methodCall) + self.called = False + def __call__(self,s,l,t): + if not self.called: + results = self.callable(s,l,t) + self.called = True + return results + raise ParseException(s,l,"") + def reset(self): + self.called = False + +def traceParseAction(f): + """Decorator for debugging parse actions.""" + f = _trim_arity(f) + def z(*paArgs): + thisFunc = f.func_name + s,l,t = paArgs[-3:] + if len(paArgs)>3: + thisFunc = paArgs[0].__class__.__name__ + '.' + thisFunc + sys.stderr.write( ">>entering %s(line: '%s', %d, %s)\n" % (thisFunc,line(l,s),l,t) ) + try: + ret = f(*paArgs) + except Exception: + exc = sys.exc_info()[1] + sys.stderr.write( "<", "|".join( [ _escapeRegexChars(sym) for sym in symbols] )) + try: + if len(symbols)==len("".join(symbols)): + return Regex( "[%s]" % "".join( [ _escapeRegexRangeChars(sym) for sym in symbols] ) ) + else: + return Regex( "|".join( [ re.escape(sym) for sym in symbols] ) ) + except: + warnings.warn("Exception creating Regex for oneOf, building MatchFirst", + SyntaxWarning, stacklevel=2) + + + # last resort, just use MatchFirst + return MatchFirst( [ parseElementClass(sym) for sym in symbols ] ) + +def dictOf( key, value ): + """Helper to easily and clearly define a dictionary by specifying the respective patterns + for the key and value. Takes care of defining the C{Dict}, C{ZeroOrMore}, and C{Group} tokens + in the proper order. The key pattern can include delimiting markers or punctuation, + as long as they are suppressed, thereby leaving the significant key text. The value + pattern can include named results, so that the C{Dict} results can include named token + fields. + """ + return Dict( ZeroOrMore( Group ( key + value ) ) ) + +def originalTextFor(expr, asString=True): + """Helper to return the original, untokenized text for a given expression. Useful to + restore the parsed fields of an HTML start tag into the raw tag text itself, or to + revert separate tokens with intervening whitespace back to the original matching + input text. Simpler to use than the parse action C{L{keepOriginalText}}, and does not + require the inspect module to chase up the call stack. By default, returns a + string containing the original parsed text. + + If the optional C{asString} argument is passed as C{False}, then the return value is a + C{ParseResults} containing any results names that were originally matched, and a + single token containing the original matched text from the input string. So if + the expression passed to C{L{originalTextFor}} contains expressions with defined + results names, you must set C{asString} to C{False} if you want to preserve those + results name values.""" + locMarker = Empty().setParseAction(lambda s,loc,t: loc) + endlocMarker = locMarker.copy() + endlocMarker.callPreparse = False + matchExpr = locMarker("_original_start") + expr + endlocMarker("_original_end") + if asString: + extractText = lambda s,l,t: s[t._original_start:t._original_end] + else: + def extractText(s,l,t): + del t[:] + t.insert(0, s[t._original_start:t._original_end]) + del t["_original_start"] + del t["_original_end"] + matchExpr.setParseAction(extractText) + return matchExpr + +def ungroup(expr): + """Helper to undo pyparsing's default grouping of And expressions, even + if all but one are non-empty.""" + return TokenConverter(expr).setParseAction(lambda t:t[0]) + +# convenience constants for positional expressions +empty = Empty().setName("empty") +lineStart = LineStart().setName("lineStart") +lineEnd = LineEnd().setName("lineEnd") +stringStart = StringStart().setName("stringStart") +stringEnd = StringEnd().setName("stringEnd") + +_escapedPunc = Word( _bslash, r"\[]-*.$+^?()~ ", exact=2 ).setParseAction(lambda s,l,t:t[0][1]) +_printables_less_backslash = "".join([ c for c in printables if c not in r"\]" ]) +_escapedHexChar = Regex(r"\\0?[xX][0-9a-fA-F]+").setParseAction(lambda s,l,t:unichr(int(t[0][1:],16))) +_escapedOctChar = Regex(r"\\0[0-7]+").setParseAction(lambda s,l,t:unichr(int(t[0][1:],8))) +_singleChar = _escapedPunc | _escapedHexChar | _escapedOctChar | Word(_printables_less_backslash,exact=1) +_charRange = Group(_singleChar + Suppress("-") + _singleChar) +_reBracketExpr = Literal("[") + Optional("^").setResultsName("negate") + Group( OneOrMore( _charRange | _singleChar ) ).setResultsName("body") + "]" + +_expanded = lambda p: (isinstance(p,ParseResults) and ''.join([ unichr(c) for c in range(ord(p[0]),ord(p[1])+1) ]) or p) + +def srange(s): + r"""Helper to easily define string ranges for use in Word construction. Borrows + syntax from regexp '[]' string range definitions:: + srange("[0-9]") -> "0123456789" + srange("[a-z]") -> "abcdefghijklmnopqrstuvwxyz" + srange("[a-z$_]") -> "abcdefghijklmnopqrstuvwxyz$_" + The input string must be enclosed in []'s, and the returned string is the expanded + character set joined into a single string. + The values enclosed in the []'s may be:: + a single character + an escaped character with a leading backslash (such as \- or \]) + an escaped hex character with a leading '\x' (\x21, which is a '!' character) + (\0x## is also supported for backwards compatibility) + an escaped octal character with a leading '\0' (\041, which is a '!' character) + a range of any of the above, separated by a dash ('a-z', etc.) + any combination of the above ('aeiouy', 'a-zA-Z0-9_$', etc.) + """ + try: + return "".join([_expanded(part) for part in _reBracketExpr.parseString(s).body]) + except: + return "" + +def matchOnlyAtCol(n): + """Helper method for defining parse actions that require matching at a specific + column in the input text. + """ + def verifyCol(strg,locn,toks): + if col(locn,strg) != n: + raise ParseException(strg,locn,"matched token not at column %d" % n) + return verifyCol + +def replaceWith(replStr): + """Helper method for common parse actions that simply return a literal value. Especially + useful when used with C{transformString()}. + """ + def _replFunc(*args): + return [replStr] + return _replFunc + +def removeQuotes(s,l,t): + """Helper parse action for removing quotation marks from parsed quoted strings. + To use, add this parse action to quoted string using:: + quotedString.setParseAction( removeQuotes ) + """ + return t[0][1:-1] + +def upcaseTokens(s,l,t): + """Helper parse action to convert tokens to upper case.""" + return [ tt.upper() for tt in map(_ustr,t) ] + +def downcaseTokens(s,l,t): + """Helper parse action to convert tokens to lower case.""" + return [ tt.lower() for tt in map(_ustr,t) ] + +def keepOriginalText(s,startLoc,t): + """DEPRECATED - use new helper method C{originalTextFor}. + Helper parse action to preserve original parsed text, + overriding any nested parse actions.""" + try: + endloc = getTokensEndLoc() + except ParseException: + raise ParseFatalException("incorrect usage of keepOriginalText - may only be called as a parse action") + del t[:] + t += ParseResults(s[startLoc:endloc]) + return t + +def getTokensEndLoc(): + """Method to be called from within a parse action to determine the end + location of the parsed tokens.""" + import inspect + fstack = inspect.stack() + try: + # search up the stack (through intervening argument normalizers) for correct calling routine + for f in fstack[2:]: + if f[3] == "_parseNoCache": + endloc = f[0].f_locals["loc"] + return endloc + else: + raise ParseFatalException("incorrect usage of getTokensEndLoc - may only be called from within a parse action") + finally: + del fstack + +def _makeTags(tagStr, xml): + """Internal helper to construct opening and closing tag expressions, given a tag name""" + if isinstance(tagStr,basestring): + resname = tagStr + tagStr = Keyword(tagStr, caseless=not xml) + else: + resname = tagStr.name + + tagAttrName = Word(alphas,alphanums+"_-:") + if (xml): + tagAttrValue = dblQuotedString.copy().setParseAction( removeQuotes ) + openTag = Suppress("<") + tagStr("tag") + \ + Dict(ZeroOrMore(Group( tagAttrName + Suppress("=") + tagAttrValue ))) + \ + Optional("/",default=[False]).setResultsName("empty").setParseAction(lambda s,l,t:t[0]=='/') + Suppress(">") + else: + printablesLessRAbrack = "".join( [ c for c in printables if c not in ">" ] ) + tagAttrValue = quotedString.copy().setParseAction( removeQuotes ) | Word(printablesLessRAbrack) + openTag = Suppress("<") + tagStr("tag") + \ + Dict(ZeroOrMore(Group( tagAttrName.setParseAction(downcaseTokens) + \ + Optional( Suppress("=") + tagAttrValue ) ))) + \ + Optional("/",default=[False]).setResultsName("empty").setParseAction(lambda s,l,t:t[0]=='/') + Suppress(">") + closeTag = Combine(_L("") + + openTag = openTag.setResultsName("start"+"".join(resname.replace(":"," ").title().split())).setName("<%s>" % tagStr) + closeTag = closeTag.setResultsName("end"+"".join(resname.replace(":"," ").title().split())).setName("" % tagStr) + openTag.tag = resname + closeTag.tag = resname + return openTag, closeTag + +def makeHTMLTags(tagStr): + """Helper to construct opening and closing tag expressions for HTML, given a tag name""" + return _makeTags( tagStr, False ) + +def makeXMLTags(tagStr): + """Helper to construct opening and closing tag expressions for XML, given a tag name""" + return _makeTags( tagStr, True ) + +def withAttribute(*args,**attrDict): + """Helper to create a validating parse action to be used with start tags created + with C{makeXMLTags} or C{makeHTMLTags}. Use C{withAttribute} to qualify a starting tag + with a required attribute value, to avoid false matches on common tags such as + C{} or C{
}. + + Call C{withAttribute} with a series of attribute names and values. Specify the list + of filter attributes names and values as: + - keyword arguments, as in C{(align="right")}, or + - as an explicit dict with C{**} operator, when an attribute name is also a Python + reserved word, as in C{**{"class":"Customer", "align":"right"}} + - a list of name-value tuples, as in ( ("ns1:class", "Customer"), ("ns2:align","right") ) + For attribute names with a namespace prefix, you must use the second form. Attribute + names are matched insensitive to upper/lower case. + + To verify that the attribute exists, but without specifying a value, pass + C{withAttribute.ANY_VALUE} as the value. + """ + if args: + attrs = args[:] + else: + attrs = attrDict.items() + attrs = [(k,v) for k,v in attrs] + def pa(s,l,tokens): + for attrName,attrValue in attrs: + if attrName not in tokens: + raise ParseException(s,l,"no matching attribute " + attrName) + if attrValue != withAttribute.ANY_VALUE and tokens[attrName] != attrValue: + raise ParseException(s,l,"attribute '%s' has value '%s', must be '%s'" % + (attrName, tokens[attrName], attrValue)) + return pa +withAttribute.ANY_VALUE = object() + +opAssoc = _Constants() +opAssoc.LEFT = object() +opAssoc.RIGHT = object() + +def operatorPrecedence( baseExpr, opList ): + """Helper method for constructing grammars of expressions made up of + operators working in a precedence hierarchy. Operators may be unary or + binary, left- or right-associative. Parse actions can also be attached + to operator expressions. + + Parameters: + - baseExpr - expression representing the most basic element for the nested + - opList - list of tuples, one for each operator precedence level in the + expression grammar; each tuple is of the form + (opExpr, numTerms, rightLeftAssoc, parseAction), where: + - opExpr is the pyparsing expression for the operator; + may also be a string, which will be converted to a Literal; + if numTerms is 3, opExpr is a tuple of two expressions, for the + two operators separating the 3 terms + - numTerms is the number of terms for this operator (must + be 1, 2, or 3) + - rightLeftAssoc is the indicator whether the operator is + right or left associative, using the pyparsing-defined + constants opAssoc.RIGHT and opAssoc.LEFT. + - parseAction is the parse action to be associated with + expressions matching this operator expression (the + parse action tuple member may be omitted) + """ + ret = Forward() + lastExpr = baseExpr | ( Suppress('(') + ret + Suppress(')') ) + for i,operDef in enumerate(opList): + opExpr,arity,rightLeftAssoc,pa = (operDef + (None,))[:4] + if arity == 3: + if opExpr is None or len(opExpr) != 2: + raise ValueError("if numterms=3, opExpr must be a tuple or list of two expressions") + opExpr1, opExpr2 = opExpr + thisExpr = Forward()#.setName("expr%d" % i) + if rightLeftAssoc == opAssoc.LEFT: + if arity == 1: + matchExpr = FollowedBy(lastExpr + opExpr) + Group( lastExpr + OneOrMore( opExpr ) ) + elif arity == 2: + if opExpr is not None: + matchExpr = FollowedBy(lastExpr + opExpr + lastExpr) + Group( lastExpr + OneOrMore( opExpr + lastExpr ) ) + else: + matchExpr = FollowedBy(lastExpr+lastExpr) + Group( lastExpr + OneOrMore(lastExpr) ) + elif arity == 3: + matchExpr = FollowedBy(lastExpr + opExpr1 + lastExpr + opExpr2 + lastExpr) + \ + Group( lastExpr + opExpr1 + lastExpr + opExpr2 + lastExpr ) + else: + raise ValueError("operator must be unary (1), binary (2), or ternary (3)") + elif rightLeftAssoc == opAssoc.RIGHT: + if arity == 1: + # try to avoid LR with this extra test + if not isinstance(opExpr, Optional): + opExpr = Optional(opExpr) + matchExpr = FollowedBy(opExpr.expr + thisExpr) + Group( opExpr + thisExpr ) + elif arity == 2: + if opExpr is not None: + matchExpr = FollowedBy(lastExpr + opExpr + thisExpr) + Group( lastExpr + OneOrMore( opExpr + thisExpr ) ) + else: + matchExpr = FollowedBy(lastExpr + thisExpr) + Group( lastExpr + OneOrMore( thisExpr ) ) + elif arity == 3: + matchExpr = FollowedBy(lastExpr + opExpr1 + thisExpr + opExpr2 + thisExpr) + \ + Group( lastExpr + opExpr1 + thisExpr + opExpr2 + thisExpr ) + else: + raise ValueError("operator must be unary (1), binary (2), or ternary (3)") + else: + raise ValueError("operator must indicate right or left associativity") + if pa: + matchExpr.setParseAction( pa ) + thisExpr << ( matchExpr | lastExpr ) + lastExpr = thisExpr + ret << lastExpr + return ret + +dblQuotedString = Regex(r'"(?:[^"\n\r\\]|(?:"")|(?:\\x[0-9a-fA-F]+)|(?:\\.))*"').setName("string enclosed in double quotes") +sglQuotedString = Regex(r"'(?:[^'\n\r\\]|(?:'')|(?:\\x[0-9a-fA-F]+)|(?:\\.))*'").setName("string enclosed in single quotes") +quotedString = Regex(r'''(?:"(?:[^"\n\r\\]|(?:"")|(?:\\x[0-9a-fA-F]+)|(?:\\.))*")|(?:'(?:[^'\n\r\\]|(?:'')|(?:\\x[0-9a-fA-F]+)|(?:\\.))*')''').setName("quotedString using single or double quotes") +unicodeString = Combine(_L('u') + quotedString.copy()) + +def nestedExpr(opener="(", closer=")", content=None, ignoreExpr=quotedString.copy()): + """Helper method for defining nested lists enclosed in opening and closing + delimiters ("(" and ")" are the default). + + Parameters: + - opener - opening character for a nested list (default="("); can also be a pyparsing expression + - closer - closing character for a nested list (default=")"); can also be a pyparsing expression + - content - expression for items within the nested lists (default=None) + - ignoreExpr - expression for ignoring opening and closing delimiters (default=quotedString) + + If an expression is not provided for the content argument, the nested + expression will capture all whitespace-delimited content between delimiters + as a list of separate values. + + Use the C{ignoreExpr} argument to define expressions that may contain + opening or closing characters that should not be treated as opening + or closing characters for nesting, such as quotedString or a comment + expression. Specify multiple expressions using an C{L{Or}} or C{L{MatchFirst}}. + The default is L{quotedString}, but if no expressions are to be ignored, + then pass C{None} for this argument. + """ + if opener == closer: + raise ValueError("opening and closing strings cannot be the same") + if content is None: + if isinstance(opener,basestring) and isinstance(closer,basestring): + if len(opener) == 1 and len(closer)==1: + if ignoreExpr is not None: + content = (Combine(OneOrMore(~ignoreExpr + + CharsNotIn(opener+closer+ParserElement.DEFAULT_WHITE_CHARS,exact=1)) + ).setParseAction(lambda t:t[0].strip())) + else: + content = (empty.copy()+CharsNotIn(opener+closer+ParserElement.DEFAULT_WHITE_CHARS + ).setParseAction(lambda t:t[0].strip())) + else: + if ignoreExpr is not None: + content = (Combine(OneOrMore(~ignoreExpr + + ~Literal(opener) + ~Literal(closer) + + CharsNotIn(ParserElement.DEFAULT_WHITE_CHARS,exact=1)) + ).setParseAction(lambda t:t[0].strip())) + else: + content = (Combine(OneOrMore(~Literal(opener) + ~Literal(closer) + + CharsNotIn(ParserElement.DEFAULT_WHITE_CHARS,exact=1)) + ).setParseAction(lambda t:t[0].strip())) + else: + raise ValueError("opening and closing arguments must be strings if no content expression is given") + ret = Forward() + if ignoreExpr is not None: + ret << Group( Suppress(opener) + ZeroOrMore( ignoreExpr | ret | content ) + Suppress(closer) ) + else: + ret << Group( Suppress(opener) + ZeroOrMore( ret | content ) + Suppress(closer) ) + return ret + +def indentedBlock(blockStatementExpr, indentStack, indent=True): + """Helper method for defining space-delimited indentation blocks, such as + those used to define block statements in Python source code. + + Parameters: + - blockStatementExpr - expression defining syntax of statement that + is repeated within the indented block + - indentStack - list created by caller to manage indentation stack + (multiple statementWithIndentedBlock expressions within a single grammar + should share a common indentStack) + - indent - boolean indicating whether block must be indented beyond the + the current level; set to False for block of left-most statements + (default=True) + + A valid block must contain at least one C{blockStatement}. + """ + def checkPeerIndent(s,l,t): + if l >= len(s): return + curCol = col(l,s) + if curCol != indentStack[-1]: + if curCol > indentStack[-1]: + raise ParseFatalException(s,l,"illegal nesting") + raise ParseException(s,l,"not a peer entry") + + def checkSubIndent(s,l,t): + curCol = col(l,s) + if curCol > indentStack[-1]: + indentStack.append( curCol ) + else: + raise ParseException(s,l,"not a subentry") + + def checkUnindent(s,l,t): + if l >= len(s): return + curCol = col(l,s) + if not(indentStack and curCol < indentStack[-1] and curCol <= indentStack[-2]): + raise ParseException(s,l,"not an unindent") + indentStack.pop() + + NL = OneOrMore(LineEnd().setWhitespaceChars("\t ").suppress()) + INDENT = Empty() + Empty().setParseAction(checkSubIndent) + PEER = Empty().setParseAction(checkPeerIndent) + UNDENT = Empty().setParseAction(checkUnindent) + if indent: + smExpr = Group( Optional(NL) + + #~ FollowedBy(blockStatementExpr) + + INDENT + (OneOrMore( PEER + Group(blockStatementExpr) + Optional(NL) )) + UNDENT) + else: + smExpr = Group( Optional(NL) + + (OneOrMore( PEER + Group(blockStatementExpr) + Optional(NL) )) ) + blockStatementExpr.ignore(_bslash + LineEnd()) + return smExpr + +alphas8bit = srange(r"[\0xc0-\0xd6\0xd8-\0xf6\0xf8-\0xff]") +punc8bit = srange(r"[\0xa1-\0xbf\0xd7\0xf7]") + +anyOpenTag,anyCloseTag = makeHTMLTags(Word(alphas,alphanums+"_:")) +commonHTMLEntity = Combine(_L("&") + oneOf("gt lt amp nbsp quot").setResultsName("entity") +";").streamline() +_htmlEntityMap = dict(zip("gt lt amp nbsp quot".split(),'><& "')) +replaceHTMLEntity = lambda t : t.entity in _htmlEntityMap and _htmlEntityMap[t.entity] or None + +# it's easy to get these comment structures wrong - they're very common, so may as well make them available +cStyleComment = Regex(r"/\*(?:[^*]*\*+)+?/").setName("C style comment") + +htmlComment = Regex(r"") +restOfLine = Regex(r".*").leaveWhitespace() +dblSlashComment = Regex(r"\/\/(\\\n|.)*").setName("// comment") +cppStyleComment = Regex(r"/(?:\*(?:[^*]*\*+)+?/|/[^\n]*(?:\n[^\n]*)*?(?:(?" + str(tokenlist)) + print ("tokens = " + str(tokens)) + print ("tokens.columns = " + str(tokens.columns)) + print ("tokens.tables = " + str(tokens.tables)) + print (tokens.asXML("SQL",True)) + except ParseBaseException: + err = sys.exc_info()[1] + print (teststring + "->") + print (err.line) + print (" "*(err.column-1) + "^") + print (err) + print() + + selectToken = CaselessLiteral( "select" ) + fromToken = CaselessLiteral( "from" ) + + ident = Word( alphas, alphanums + "_$" ) + columnName = delimitedList( ident, ".", combine=True ).setParseAction( upcaseTokens ) + columnNameList = Group( delimitedList( columnName ) )#.setName("columns") + tableName = delimitedList( ident, ".", combine=True ).setParseAction( upcaseTokens ) + tableNameList = Group( delimitedList( tableName ) )#.setName("tables") + simpleSQL = ( selectToken + \ + ( '*' | columnNameList ).setResultsName( "columns" ) + \ + fromToken + \ + tableNameList.setResultsName( "tables" ) ) + + test( "SELECT * from XYZZY, ABC" ) + test( "select * from SYS.XYZZY" ) + test( "Select A from Sys.dual" ) + test( "Select AA,BB,CC from Sys.dual" ) + test( "Select A, B, C from Sys.dual" ) + test( "Select A, B, C from Sys.dual" ) + test( "Xelect A, B, C from Sys.dual" ) + test( "Select A, B, C frox Sys.dual" ) + test( "Select" ) + test( "Select ^^^ frox Sys.dual" ) + test( "Select A, B, C from Sys.dual, Table2 " ) diff -Nru pycharm-2018.3.5/helpers/pycharm_generator_utils/pyparsing_py3.py pycharm-2019.1/helpers/pycharm_generator_utils/pyparsing_py3.py --- pycharm-2018.3.5/helpers/pycharm_generator_utils/pyparsing_py3.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_generator_utils/pyparsing_py3.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,6 +1,6 @@ # module pyparsing.py # -# Copyright (c) 2003-2009 Paul T. McGuire +# Copyright (c) 2003-2011 Paul T. McGuire # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the @@ -32,9 +32,9 @@ don't need to learn a new syntax for defining grammars or matching expressions - the parsing module provides a library of classes that you use to construct the grammar directly in Python. -Here is a program to parse "Hello, World!" (or any greeting of the form ", !"):: +Here is a program to parse "Hello, World!" (or any greeting of the form C{", !"}):: - from pyparsing_py3 import Word, alphas + from pyparsing import Word, alphas # define grammar of a greeting greet = Word( alphas ) + "," + Word( alphas ) + "!" @@ -49,7 +49,7 @@ The Python representation of the grammar is quite readable, owing to the self-explanatory class names, and the use of '+', '|' and '^' operators. -The parsed results returned from parseString() can be accessed as a nested list, a dictionary, or an +The parsed results returned from C{parseString()} can be accessed as a nested list, a dictionary, or an object with named attributes. The pyparsing module handles some of the problems that are typically vexing when writing text parsers: @@ -58,8 +58,8 @@ - embedded comments """ -__version__ = "1.5.2.Py3" -__versionTime__ = "9 April 2009 12:21" +__version__ = "1.5.6" +__versionTime__ = "26 June 2011 10:53" __author__ = "Paul McGuire " import string @@ -69,6 +69,7 @@ import warnings import re import sre_constants +import collections #~ sys.stderr.write( "testing pyparsing module, version %s, %s\n" % (__version__,__versionTime__ ) ) __all__ = [ @@ -91,53 +92,14 @@ 'indentedBlock', 'originalTextFor', ] -""" -Detect if we are running version 3.X and make appropriate changes -Robert A. Clark -""" -_PY3K = sys.version_info[0] > 2 -if _PY3K: - _MAX_INT = sys.maxsize - basestring = str - unichr = chr - _ustr = str - _str2dict = set - alphas = string.ascii_lowercase + string.ascii_uppercase -else: - _MAX_INT = sys.maxint - - def _ustr(obj): - """Drop-in replacement for str(obj) that tries to be Unicode friendly. It first tries - str(obj). If that fails with a UnicodeEncodeError, then it tries unicode(obj). It - then < returns the unicode object | encodes it with the default encoding | ... >. - """ - if isinstance(obj,unicode): - return obj - - try: - # If this works, then _ustr(obj) has the same behaviour as str(obj), so - # it won't break any existing code. - return str(obj) - - except UnicodeEncodeError: - # The Python docs (http://docs.python.org/ref/customization.html#l2h-182) - # state that "The return value must be a string object". However, does a - # unicode object (being a subclass of basestring) count as a "string - # object"? - # If so, then return a unicode object: - return unicode(obj) - # Else encode it... but how? There are many choices... :) - # Replace unprintables with escape codes? - #return unicode(obj).encode(sys.getdefaultencoding(), 'backslashreplace_errors') - # Replace unprintables with question marks? - #return unicode(obj).encode(sys.getdefaultencoding(), 'replace') - # ... - - def _str2dict(strg): - return dict( [(c,0) for c in strg] ) - - alphas = string.lowercase + string.uppercase +_MAX_INT = sys.maxsize +basestring = str +unichr = chr +_ustr = str +alphas = string.ascii_lowercase + string.ascii_uppercase +# build list of single arg builtins, that can be used as parse actions +singleArgBuiltins = [sum, len, enumerate, sorted, reversed, list, tuple, set, any, all] def _xml_escape(data): """Escape &, <, >, ", ', etc. in a string of data.""" @@ -221,8 +183,8 @@ pass class ParseSyntaxException(ParseFatalException): - """just like ParseFatalException, but thrown internally when an - ErrorStop indicates that parsing is to stop immediately because + """just like C{ParseFatalException}, but thrown internally when an + C{ErrorStop} ('-' operator) indicates that parsing is to stop immediately because an unbacktrackable syntax error has been found""" def __init__(self, pe): super(ParseSyntaxException, self).__init__( @@ -242,7 +204,7 @@ #~ self.reparseLoc = restartLoc class RecursiveGrammarException(Exception): - """exception thrown by validate() if the grammar could be improperly recursive""" + """exception thrown by C{validate()} if the grammar could be improperly recursive""" def __init__( self, parseElementList ): self.parseElementTrace = parseElementList @@ -261,11 +223,11 @@ class ParseResults(object): """Structured parse results, to provide multiple means of access to the parsed data: - - as a list (len(results)) - - by list index (results[0], results[1], etc.) - - by attribute (results.) + - as a list (C{len(results)}) + - by list index (C{results[0], results[1]}, etc.) + - by attribute (C{results.}) """ - __slots__ = ( "__toklist", "__tokdict", "__doinit", "__name", "__parent", "__accumNames", "__weakref__" ) + #~ __slots__ = ( "__toklist", "__tokdict", "__doinit", "__name", "__parent", "__accumNames", "__weakref__" ) def __new__(cls, toklist, name=None, asList=True, modal=True ): if isinstance(toklist, cls): return toklist @@ -275,7 +237,7 @@ # Performance tuning: we construct a *lot* of these, so keep this # constructor as small and fast as possible - def __init__( self, toklist, name=None, asList=True, modal=True ): + def __init__( self, toklist, name=None, asList=True, modal=True, isinstance=isinstance ): if self.__doinit: self.__doinit = False self.__name = None @@ -287,7 +249,7 @@ self.__toklist = [toklist] self.__tokdict = dict() - if name: + if name is not None and name: if not modal: self.__accumNames[name] = 0 if isinstance(name,int): @@ -317,7 +279,7 @@ else: return ParseResults([ v[0] for v in self.__tokdict[i] ]) - def __setitem__( self, k, v ): + def __setitem__( self, k, v, isinstance=isinstance ): if isinstance(v,_ParseResultsWithOffset): self.__tokdict[k] = self.__tokdict.get(k,list()) + [v] sub = v[0] @@ -359,7 +321,7 @@ def __bool__(self): return len( self.__toklist ) > 0 __nonzero__ = __bool__ def __iter__( self ): return iter( self.__toklist ) - def __reversed__( self ): return iter( reversed(self.__toklist) ) + def __reversed__( self ): return iter( self.__toklist[::-1] ) def keys( self ): """Returns all named result keys.""" return self.__tokdict.keys() @@ -373,14 +335,15 @@ def get(self, key, defaultValue=None): """Returns named result matching the given key, or if there is no - such name, then returns the given defaultValue or None if no - defaultValue is specified.""" + such name, then returns the given C{defaultValue} or C{None} if no + C{defaultValue} is specified.""" if key in self: return self[key] else: return defaultValue def insert( self, index, insStr ): + """Inserts new element at location index in the list of parsed tokens.""" self.__toklist.insert(index, insStr) # fixup indices in token dictionary for name in self.__tokdict: @@ -397,7 +360,7 @@ return [ v[-1][0] for v in self.__tokdict.values() ] def __getattr__( self, name ): - if name not in self.__slots__: + if True: #name not in self.__slots__: if name in self.__tokdict: if name not in self.__accumNames: return self.__tokdict[name][-1][0] @@ -426,9 +389,12 @@ self.__toklist += other.__toklist self.__accumNames.update( other.__accumNames ) - del other return self + def __radd__(self, other): + if isinstance(other,int) and other == 0: + return self.copy() + def __repr__( self ): return "(%s, %s)" % ( repr( self.__toklist ), repr( self.__tokdict ) ) @@ -470,7 +436,7 @@ return dict( self.items() ) def copy( self ): - """Returns a new copy of a ParseResults object.""" + """Returns a new copy of a C{ParseResults} object.""" ret = ParseResults( self.__toklist ) ret.__tokdict = self.__tokdict.copy() ret.__parent = self.__parent @@ -563,8 +529,8 @@ return None def dump(self,indent='',depth=0): - """Diagnostic method for listing out the contents of a ParseResults. - Accepts an optional indent argument so that this string can be embedded + """Diagnostic method for listing out the contents of a C{ParseResults}. + Accepts an optional C{indent} argument so that this string can be embedded in a nested display of other data.""" out = [] out.append( indent+_ustr(self.asList()) ) @@ -593,10 +559,10 @@ def __setstate__(self,state): self.__toklist = state[0] - self.__tokdict, \ - par, \ - inAccumNames, \ - self.__name = state[1] + (self.__tokdict, + par, + inAccumNames, + self.__name) = state[1] self.__accumNames = {} self.__accumNames.update(inAccumNames) if par is not None: @@ -607,6 +573,8 @@ def __dir__(self): return dir(super(ParseResults,self)) + self.keys() +collections.MutableMapping.register(ParseResults) + def col (loc,strg): """Returns current column within a string, counting newlines as line separators. The first column is number 1. @@ -636,7 +604,7 @@ """ lastCR = strg.rfind("\n", 0, loc) nextCR = strg.find("\n", loc) - if nextCR > 0: + if nextCR >= 0: return strg[lastCR+1:nextCR] else: return strg[lastCR+1:] @@ -654,9 +622,25 @@ """'Do-nothing' debug action, to suppress debugging output during parsing.""" pass +'decorator to trim function calls to match the arity of the target' +def _trim_arity(func, maxargs=2): + limit = maxargs + def wrapper(*args): + nonlocal limit + while 1: + try: + return func(*args[limit:]) + except TypeError: + if limit: + limit -= 1 + continue + raise + return wrapper + class ParserElement(object): """Abstract base level parser element class.""" DEFAULT_WHITE_CHARS = " \n\t\r" + verbose_stacktrace = False def setDefaultWhitespaceChars( chars ): """Overrides the default whitespace chars @@ -688,7 +672,7 @@ self.callDuringTry = False def copy( self ): - """Make a copy of this ParserElement. Useful for defining different parse actions + """Make a copy of this C{ParserElement}. Useful for defining different parse actions for the same parsing pattern, using copies of the original parse element.""" cpy = copy.copy( self ) cpy.parseAction = self.parseAction[:] @@ -708,18 +692,25 @@ def setResultsName( self, name, listAllMatches=False ): """Define name for referencing matching tokens as a nested attribute of the returned parse results. - NOTE: this returns a *copy* of the original ParserElement object; + NOTE: this returns a *copy* of the original C{ParserElement} object; this is so that the client can define a basic element, such as an integer, and reference it in multiple places with different names. + + You can also set results names using the abbreviated syntax, + C{expr("name")} in place of C{expr.setResultsName("name")} - + see L{I{__call__}<__call__>}. """ newself = self.copy() + if name.endswith("*"): + name = name[:-1] + listAllMatches=True newself.resultsName = name newself.modalResults = not listAllMatches return newself def setBreak(self,breakFlag = True): """Method to invoke the Python pdb debugger when this element is - about to be parsed. Set breakFlag to True to enable, False to + about to be parsed. Set C{breakFlag} to True to enable, False to disable. """ if breakFlag: @@ -735,104 +726,10 @@ self._parse = self._parse._originalParseMethod return self - def _normalizeParseActionArgs( f ): - """Internal method used to decorate parse actions that take fewer than 3 arguments, - so that all parse actions can be called as f(s,l,t).""" - STAR_ARGS = 4 - - try: - restore = None - if isinstance(f,type): - restore = f - f = f.__init__ - if not _PY3K: - codeObj = f.func_code - else: - codeObj = f.code - if codeObj.co_flags & STAR_ARGS: - return f - numargs = codeObj.co_argcount - if not _PY3K: - if hasattr(f,"im_self"): - numargs -= 1 - else: - if hasattr(f,"__self__"): - numargs -= 1 - if restore: - f = restore - except AttributeError: - try: - if not _PY3K: - call_im_func_code = f.__call__.im_func.func_code - else: - call_im_func_code = f.__code__ - - # not a function, must be a callable object, get info from the - # im_func binding of its bound __call__ method - if call_im_func_code.co_flags & STAR_ARGS: - return f - numargs = call_im_func_code.co_argcount - if not _PY3K: - if hasattr(f.__call__,"im_self"): - numargs -= 1 - else: - if hasattr(f.__call__,"__self__"): - numargs -= 0 - except AttributeError: - if not _PY3K: - call_func_code = f.__call__.func_code - else: - call_func_code = f.__call__.__code__ - # not a bound method, get info directly from __call__ method - if call_func_code.co_flags & STAR_ARGS: - return f - numargs = call_func_code.co_argcount - if not _PY3K: - if hasattr(f.__call__,"im_self"): - numargs -= 1 - else: - if hasattr(f.__call__,"__self__"): - numargs -= 1 - - - #~ print ("adding function %s with %d args" % (f.func_name,numargs)) - if numargs == 3: - return f - else: - if numargs > 3: - def tmp(s,l,t): - return f(f.__call__.__self__, s,l,t) - if numargs == 2: - def tmp(s,l,t): - return f(l,t) - elif numargs == 1: - def tmp(s,l,t): - return f(t) - else: #~ numargs == 0: - def tmp(s,l,t): - return f() - try: - tmp.__name__ = f.__name__ - except (AttributeError,TypeError): - # no need for special handling if attribute doesnt exist - pass - try: - tmp.__doc__ = f.__doc__ - except (AttributeError,TypeError): - # no need for special handling if attribute doesnt exist - pass - try: - tmp.__dict__.update(f.__dict__) - except (AttributeError,TypeError): - # no need for special handling if attribute doesnt exist - pass - return tmp - _normalizeParseActionArgs = staticmethod(_normalizeParseActionArgs) - def setParseAction( self, *fns, **kwargs ): """Define action to perform when successfully matching parse element definition. - Parse action fn is a callable method with 0-3 arguments, called as fn(s,loc,toks), - fn(loc,toks), fn(toks), or just fn(), where: + Parse action fn is a callable method with 0-3 arguments, called as C{fn(s,loc,toks)}, + C{fn(loc,toks)}, C{fn(toks)}, or just C{fn()}, where: - s = the original string being parsed (see note below) - loc = the location of the matching substring - toks = a list of the matched tokens, packaged as a ParseResults object @@ -846,25 +743,25 @@ consistent view of the parsed string, the parse location, and line and column positions within the parsed string. """ - self.parseAction = list(map(self._normalizeParseActionArgs, list(fns))) + self.parseAction = list(map(_trim_arity, list(fns))) self.callDuringTry = ("callDuringTry" in kwargs and kwargs["callDuringTry"]) return self def addParseAction( self, *fns, **kwargs ): """Add parse action to expression's list of parse actions. See L{I{setParseAction}}.""" - self.parseAction += list(map(self._normalizeParseActionArgs, list(fns))) + self.parseAction += list(map(_trim_arity, list(fns))) self.callDuringTry = self.callDuringTry or ("callDuringTry" in kwargs and kwargs["callDuringTry"]) return self def setFailAction( self, fn ): """Define action to perform if parsing fails at this expression. Fail acton fn is a callable function that takes the arguments - fn(s,loc,expr,err) where: + C{fn(s,loc,expr,err)} where: - s = string being parsed - loc = location where expression match was attempted and failed - expr = the parse expression that failed - err = the exception thrown - The function returns no value. It may throw ParseFatalException + The function returns no value. It may throw C{ParseFatalException} if it is desired to stop parsing immediately.""" self.failAction = fn return self @@ -912,21 +809,17 @@ preloc = self.preParse( instring, loc ) else: preloc = loc - tokensStart = loc + tokensStart = preloc try: try: loc,tokens = self.parseImpl( instring, preloc, doActions ) except IndexError: raise ParseException( instring, len(instring), self.errmsg, self ) - except ParseBaseException: + except ParseBaseException as err: #~ print ("Exception raised:", err) - err = None if self.debugActions[2]: - err = sys.exc_info()[1] self.debugActions[2]( instring, tokensStart, self, err ) if self.failAction: - if err is None: - err = sys.exc_info()[1] self.failAction( instring, tokensStart, self, err ) raise else: @@ -934,7 +827,7 @@ preloc = self.preParse( instring, loc ) else: preloc = loc - tokensStart = loc + tokensStart = preloc if self.mayIndexError or loc >= len(instring): try: loc,tokens = self.parseImpl( instring, preloc, doActions ) @@ -956,10 +849,9 @@ self.resultsName, asList=self.saveAsList and isinstance(tokens,(ParseResults,list)), modal=self.modalResults ) - except ParseBaseException: + except ParseBaseException as err: #~ print "Exception raised in user parse action:", err if (self.debugActions[2] ): - err = sys.exc_info()[1] self.debugActions[2]( instring, tokensStart, self, err ) raise else: @@ -990,16 +882,16 @@ lookup = (self,instring,loc,callPreParse,doActions) if lookup in ParserElement._exprArgCache: value = ParserElement._exprArgCache[ lookup ] - if isinstance(value,Exception): + if isinstance(value, Exception): raise value - return value + return (value[0],value[1].copy()) else: try: value = self._parseNoCache( instring, loc, doActions, callPreParse ) ParserElement._exprArgCache[ lookup ] = (value[0],value[1].copy()) return value - except ParseBaseException: - pe = sys.exc_info()[1] + except ParseBaseException as pe: + exc.__traceback__ = None ParserElement._exprArgCache[ lookup ] = pe raise @@ -1021,11 +913,11 @@ This speedup may break existing programs that use parse actions that have side-effects. For this reason, packrat parsing is disabled when - you first import pyparsing_py3 as pyparsing. To activate the packrat feature, your - program must call the class method ParserElement.enablePackrat(). If - your program uses psyco to "compile as you go", you must call - enablePackrat before calling psyco.full(). If you do not do this, - Python will crash. For best results, call enablePackrat() immediately + you first import pyparsing. To activate the packrat feature, your + program must call the class method C{ParserElement.enablePackrat()}. If + your program uses C{psyco} to "compile as you go", you must call + C{enablePackrat} before calling C{psyco.full()}. If you do not do this, + Python will crash. For best results, call C{enablePackrat()} immediately after importing pyparsing. """ if not ParserElement._packratEnabled: @@ -1039,21 +931,21 @@ expression has been built. If you want the grammar to require that the entire input string be - successfully parsed, then set parseAll to True (equivalent to ending - the grammar with StringEnd()). + successfully parsed, then set C{parseAll} to True (equivalent to ending + the grammar with C{StringEnd()}). - Note: parseString implicitly calls expandtabs() on the input string, + Note: C{parseString} implicitly calls C{expandtabs()} on the input string, in order to report proper column numbers in parse actions. If the input string contains tabs and - the grammar uses parse actions that use the loc argument to index into the + the grammar uses parse actions that use the C{loc} argument to index into the string being parsed, you can ensure you have a consistent view of the input string by: - - calling parseWithTabs on your grammar before calling parseString + - calling C{parseWithTabs} on your grammar before calling C{parseString} (see L{I{parseWithTabs}}) - - define your parse action using the full (s,loc,toks) signature, and - reference the input string using the parse action's s argument + - define your parse action using the full C{(s,loc,toks)} signature, and + reference the input string using the parse action's C{s} argument - explictly expand the tabs in your input string before calling - parseString + C{parseString} """ ParserElement.resetCache() if not self.streamlined: @@ -1067,18 +959,22 @@ loc, tokens = self._parse( instring, 0 ) if parseAll: loc = self.preParse( instring, loc ) - StringEnd()._parse( instring, loc ) - except ParseBaseException: - exc = sys.exc_info()[1] - # catch and re-raise exception from here, clears out pyparsing internal stack trace - raise exc + se = Empty() + StringEnd() + se._parse( instring, loc ) + except ParseBaseException as exc: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + raise exc else: return tokens - def scanString( self, instring, maxMatches=_MAX_INT ): + def scanString( self, instring, maxMatches=_MAX_INT, overlap=False ): """Scan the input string for expression matches. Each match will return the matching tokens, start location, and end location. May be called with optional - maxMatches argument, to clip scanning after 'n' matches are found. + C{maxMatches} argument, to clip scanning after 'n' matches are found. If + C{overlap} is specified, then overlapping matches will be reported. Note that the start and end locations are reported relative to the string being parsed. See L{I{parseString}} for more information on parsing @@ -1107,20 +1003,30 @@ if nextLoc > loc: matches += 1 yield tokens, preloc, nextLoc - loc = nextLoc + if overlap: + nextloc = preparseFn( instring, loc ) + if nextloc > loc: + loc = nextLoc + else: + loc += 1 + else: + loc = nextLoc else: loc = preloc+1 - except ParseBaseException: - pe = sys.exc_info()[1] - raise pe + except ParseBaseException as exc: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + raise exc def transformString( self, instring ): - """Extension to scanString, to modify matching text with modified tokens that may - be returned from a parse action. To use transformString, define a grammar and + """Extension to C{scanString}, to modify matching text with modified tokens that may + be returned from a parse action. To use C{transformString}, define a grammar and attach a parse action to it that modifies the returned token list. - Invoking transformString() on a target string will then scan for matches, + Invoking C{transformString()} on a target string will then scan for matches, and replace the matched text patterns according to the logic in the parse - action. transformString() returns the resulting transformed string.""" + action. C{transformString()} returns the resulting transformed string.""" out = [] lastE = 0 # force preservation of s, to minimize unwanted transformation of string, and to @@ -1138,21 +1044,28 @@ out.append(t) lastE = e out.append(instring[lastE:]) - return "".join(map(_ustr,out)) - except ParseBaseException: - pe = sys.exc_info()[1] - raise pe + out = [o for o in out if o] + return "".join(map(_ustr,_flatten(out))) + except ParseBaseException as exc: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + raise exc def searchString( self, instring, maxMatches=_MAX_INT ): - """Another extension to scanString, simplifying the access to the tokens found + """Another extension to C{scanString}, simplifying the access to the tokens found to match the given parse expression. May be called with optional - maxMatches argument, to clip searching after 'n' matches are found. + C{maxMatches} argument, to clip searching after 'n' matches are found. """ try: return ParseResults([ t for t,s,e in self.scanString( instring, maxMatches ) ]) - except ParseBaseException: - pe = sys.exc_info()[1] - raise pe + except ParseBaseException as exc: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + raise exc def __add__(self, other ): """Implementation of + operator - returns And""" @@ -1165,7 +1078,7 @@ return And( [ self, other ] ) def __radd__(self, other ): - """Implementation of + operator when left operand is not a ParserElement""" + """Implementation of + operator when left operand is not a C{ParserElement}""" if isinstance( other, basestring ): other = Literal( other ) if not isinstance( other, ParserElement ): @@ -1175,7 +1088,7 @@ return other + self def __sub__(self, other): - """Implementation of - operator, returns And with error stop""" + """Implementation of - operator, returns C{And} with error stop""" if isinstance( other, basestring ): other = Literal( other ) if not isinstance( other, ParserElement ): @@ -1185,7 +1098,7 @@ return And( [ self, And._ErrorStop(), other ] ) def __rsub__(self, other ): - """Implementation of - operator when left operand is not a ParserElement""" + """Implementation of - operator when left operand is not a C{ParserElement}""" if isinstance( other, basestring ): other = Literal( other ) if not isinstance( other, ParserElement ): @@ -1195,6 +1108,25 @@ return other - self def __mul__(self,other): + """Implementation of * operator, allows use of C{expr * 3} in place of + C{expr + expr + expr}. Expressions may also me multiplied by a 2-integer + tuple, similar to C{{min,max}} multipliers in regular expressions. Tuples + may also include C{None} as in: + - C{expr*(n,None)} or C{expr*(n,)} is equivalent + to C{expr*n + ZeroOrMore(expr)} + (read as "at least n instances of C{expr}") + - C{expr*(None,n)} is equivalent to C{expr*(0,n)} + (read as "0 to n instances of C{expr}") + - C{expr*(None,None)} is equivalent to C{ZeroOrMore(expr)} + - C{expr*(1,None)} is equivalent to C{OneOrMore(expr)} + + Note that C{expr*(None,n)} does not raise an exception if + more than n exprs exist in the input stream; that is, + C{expr*(None,n)} does not enforce a maximum number of expr + occurrences. If this behavior is desired, then write + C{expr*(None,n) + ~expr} + + """ if isinstance(other,int): minElements, optElements = other,0 elif isinstance(other,tuple): @@ -1247,7 +1179,7 @@ return self.__mul__(other) def __or__(self, other ): - """Implementation of | operator - returns MatchFirst""" + """Implementation of | operator - returns C{MatchFirst}""" if isinstance( other, basestring ): other = Literal( other ) if not isinstance( other, ParserElement ): @@ -1257,7 +1189,7 @@ return MatchFirst( [ self, other ] ) def __ror__(self, other ): - """Implementation of | operator when left operand is not a ParserElement""" + """Implementation of | operator when left operand is not a C{ParserElement}""" if isinstance( other, basestring ): other = Literal( other ) if not isinstance( other, ParserElement ): @@ -1267,7 +1199,7 @@ return other | self def __xor__(self, other ): - """Implementation of ^ operator - returns Or""" + """Implementation of ^ operator - returns C{Or}""" if isinstance( other, basestring ): other = Literal( other ) if not isinstance( other, ParserElement ): @@ -1277,7 +1209,7 @@ return Or( [ self, other ] ) def __rxor__(self, other ): - """Implementation of ^ operator when left operand is not a ParserElement""" + """Implementation of ^ operator when left operand is not a C{ParserElement}""" if isinstance( other, basestring ): other = Literal( other ) if not isinstance( other, ParserElement ): @@ -1287,7 +1219,7 @@ return other ^ self def __and__(self, other ): - """Implementation of & operator - returns Each""" + """Implementation of & operator - returns C{Each}""" if isinstance( other, basestring ): other = Literal( other ) if not isinstance( other, ParserElement ): @@ -1297,7 +1229,7 @@ return Each( [ self, other ] ) def __rand__(self, other ): - """Implementation of & operator when left operand is not a ParserElement""" + """Implementation of & operator when left operand is not a C{ParserElement}""" if isinstance( other, basestring ): other = Literal( other ) if not isinstance( other, ParserElement ): @@ -1307,26 +1239,29 @@ return other & self def __invert__( self ): - """Implementation of ~ operator - returns NotAny""" + """Implementation of ~ operator - returns C{NotAny}""" return NotAny( self ) def __call__(self, name): - """Shortcut for setResultsName, with listAllMatches=default:: + """Shortcut for C{setResultsName}, with C{listAllMatches=default}:: userdata = Word(alphas).setResultsName("name") + Word(nums+"-").setResultsName("socsecno") could be written as:: userdata = Word(alphas)("name") + Word(nums+"-")("socsecno") + + If C{name} is given with a trailing C{'*'} character, then C{listAllMatches} will be + passed as C{True}. """ return self.setResultsName(name) def suppress( self ): - """Suppresses the output of this ParserElement; useful to keep punctuation from + """Suppresses the output of this C{ParserElement}; useful to keep punctuation from cluttering up returned output. """ return Suppress( self ) def leaveWhitespace( self ): """Disables the skipping of whitespace before matching the characters in the - ParserElement's defined pattern. This is normally only used internally by + C{ParserElement}'s defined pattern. This is normally only used internally by the pyparsing module, but may be needed in some whitespace-sensitive grammars. """ self.skipWhitespace = False @@ -1341,9 +1276,9 @@ return self def parseWithTabs( self ): - """Overrides default behavior to expand s to spaces before parsing the input string. - Must be called before parseString when the input grammar contains elements that - match characters.""" + """Overrides default behavior to expand C{}s to spaces before parsing the input string. + Must be called before C{parseString} when the input grammar contains elements that + match C{} characters.""" self.keepTabs = True return self @@ -1354,9 +1289,9 @@ """ if isinstance( other, Suppress ): if other not in self.ignoreExprs: - self.ignoreExprs.append( other ) + self.ignoreExprs.append( other.copy() ) else: - self.ignoreExprs.append( Suppress( other ) ) + self.ignoreExprs.append( Suppress( other.copy() ) ) return self def setDebugActions( self, startAction, successAction, exceptionAction ): @@ -1369,7 +1304,7 @@ def setDebug( self, flag=True ): """Enable display of debugging messages while doing pattern matching. - Set flag to True to enable, False to disable.""" + Set C{flag} to True to enable, False to disable.""" if flag: self.setDebugActions( _defaultStartDebugAction, _defaultSuccessDebugAction, _defaultExceptionDebugAction ) else: @@ -1407,20 +1342,12 @@ f.close() try: return self.parseString(file_contents, parseAll) - except ParseBaseException: - # catch and re-raise exception from here, clears out pyparsing internal stack trace - exc = sys.exc_info()[1] - raise exc - - def getException(self): - return ParseException("",0,self.errmsg,self) - - def __getattr__(self,aname): - if aname == "myException": - self.myException = ret = self.getException(); - return ret; - else: - raise AttributeError("no such attribute " + aname) + except ParseBaseException as exc: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + raise exc def __eq__(self,other): if isinstance(other, ParserElement): @@ -1448,15 +1375,13 @@ class Token(ParserElement): - """Abstract ParserElement subclass, for defining atomic matching patterns.""" + """Abstract C{ParserElement} subclass, for defining atomic matching patterns.""" def __init__( self ): super(Token,self).__init__( savelist=False ) - #self.myException = ParseException("",0,"",self) def setName(self, name): s = super(Token,self).setName(name) self.errmsg = "Expected " + self.name - #s.myException.msg = self.errmsg return s @@ -1477,13 +1402,9 @@ self.mayReturnEmpty = True self.mayIndexError = False self.errmsg = "Unmatchable token" - #self.myException.msg = self.errmsg def parseImpl( self, instring, loc, doActions=True ): - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) class Literal(Token): @@ -1501,7 +1422,6 @@ self.name = '"%s"' % _ustr(self.match) self.errmsg = "Expected " + self.name self.mayReturnEmpty = False - #self.myException.msg = self.errmsg self.mayIndexError = False # Performance tuning: this routine gets called a *lot* @@ -1512,22 +1432,18 @@ if (instring[loc] == self.firstMatchChar and (self.matchLen==1 or instring.startswith(self.match,loc)) ): return loc+self.matchLen, self.match - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) _L = Literal class Keyword(Token): """Token to exactly match a specified string as a keyword, that is, it must be - immediately followed by a non-keyword character. Compare with Literal:: - Literal("if") will match the leading 'if' in 'ifAndOnlyIf'. - Keyword("if") will not; it will only match the leading 'if in 'if x=1', or 'if(y==2)' + immediately followed by a non-keyword character. Compare with C{Literal}:: + Literal("if") will match the leading C{'if'} in C{'ifAndOnlyIf'}. + Keyword("if") will not; it will only match the leading C{'if'} in C{'if x=1'}, or C{'if(y==2)'} Accepts two optional constructor arguments in addition to the keyword string: - identChars is a string of characters that would be valid identifier characters, - defaulting to all alphanumerics + "_" and "$"; caseless allows case-insensitive - matching, default is False. + C{identChars} is a string of characters that would be valid identifier characters, + defaulting to all alphanumerics + "_" and "$"; C{caseless} allows case-insensitive + matching, default is C{False}. """ DEFAULT_KEYWORD_CHARS = alphanums+"_$" @@ -1543,13 +1459,12 @@ self.name = '"%s"' % self.match self.errmsg = "Expected " + self.name self.mayReturnEmpty = False - #self.myException.msg = self.errmsg self.mayIndexError = False self.caseless = caseless if caseless: self.caselessmatch = matchString.upper() identChars = identChars.upper() - self.identChars = _str2dict(identChars) + self.identChars = set(identChars) def parseImpl( self, instring, loc, doActions=True ): if self.caseless: @@ -1563,11 +1478,7 @@ (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen] not in self.identChars) and (loc == 0 or instring[loc-1] not in self.identChars) ): return loc+self.matchLen, self.match - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) def copy(self): c = super(Keyword,self).copy() @@ -1591,16 +1502,11 @@ self.returnString = matchString self.name = "'%s'" % self.returnString self.errmsg = "Expected " + self.name - #self.myException.msg = self.errmsg def parseImpl( self, instring, loc, doActions=True ): if instring[ loc:loc+self.matchLen ].upper() == self.match: return loc+self.matchLen, self.returnString - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) class CaselessKeyword(Keyword): def __init__( self, matchString, identChars=Keyword.DEFAULT_KEYWORD_CHARS ): @@ -1610,31 +1516,34 @@ if ( (instring[ loc:loc+self.matchLen ].upper() == self.caselessmatch) and (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen].upper() not in self.identChars) ): return loc+self.matchLen, self.match - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) class Word(Token): """Token for matching words composed of allowed character sets. Defined with string containing all allowed initial characters, an optional string containing allowed body characters (if omitted, defaults to the initial character set), and an optional minimum, - maximum, and/or exact length. The default value for min is 1 (a - minimum value < 1 is not valid); the default values for max and exact - are 0, meaning no maximum or exact length restriction. + maximum, and/or exact length. The default value for C{min} is 1 (a + minimum value < 1 is not valid); the default values for C{max} and C{exact} + are 0, meaning no maximum or exact length restriction. An optional + C{exclude} parameter can list characters that might be found in + the input C{bodyChars} string; useful to define a word of all printables + except for one or two characters, for instance. """ - def __init__( self, initChars, bodyChars=None, min=1, max=0, exact=0, asKeyword=False ): + def __init__( self, initChars, bodyChars=None, min=1, max=0, exact=0, asKeyword=False, excludeChars=None ): super(Word,self).__init__() + if excludeChars: + initChars = ''.join([c for c in initChars if c not in excludeChars]) + if bodyChars: + bodyChars = ''.join([c for c in bodyChars if c not in excludeChars]) self.initCharsOrig = initChars - self.initChars = _str2dict(initChars) + self.initChars = set(initChars) if bodyChars : self.bodyCharsOrig = bodyChars - self.bodyChars = _str2dict(bodyChars) + self.bodyChars = set(bodyChars) else: self.bodyCharsOrig = initChars - self.bodyChars = _str2dict(initChars) + self.bodyChars = set(initChars) self.maxSpecified = max > 0 @@ -1654,7 +1563,6 @@ self.name = _ustr(self) self.errmsg = "Expected " + self.name - #self.myException.msg = self.errmsg self.mayIndexError = False self.asKeyword = asKeyword @@ -1680,20 +1588,14 @@ if self.re: result = self.re.match(instring,loc) if not result: - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) loc = result.end() - return loc,result.group() + return loc, result.group() if not(instring[ loc ] in self.initChars): - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) + start = loc loc += 1 instrlen = len(instring) @@ -1713,11 +1615,7 @@ throwException = True if throwException: - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) return loc, instring[start:loc] @@ -1748,38 +1646,45 @@ """Token for matching strings that match a given regular expression. Defined with string specifying the regular expression in a form recognized by the inbuilt Python re module. """ + compiledREtype = type(re.compile("[A-Z]")) def __init__( self, pattern, flags=0): - """The parameters pattern and flags are passed to the re.compile() function as-is. See the Python re module for an explanation of the acceptable patterns and flags.""" + """The parameters C{pattern} and C{flags} are passed to the C{re.compile()} function as-is. See the Python C{re} module for an explanation of the acceptable patterns and flags.""" super(Regex,self).__init__() - if len(pattern) == 0: - warnings.warn("null string passed to Regex; use Empty() instead", - SyntaxWarning, stacklevel=2) + if isinstance(pattern, basestring): + if len(pattern) == 0: + warnings.warn("null string passed to Regex; use Empty() instead", + SyntaxWarning, stacklevel=2) - self.pattern = pattern - self.flags = flags + self.pattern = pattern + self.flags = flags - try: - self.re = re.compile(self.pattern, self.flags) - self.reString = self.pattern - except sre_constants.error: - warnings.warn("invalid pattern (%s) passed to Regex" % pattern, - SyntaxWarning, stacklevel=2) - raise + try: + self.re = re.compile(self.pattern, self.flags) + self.reString = self.pattern + except sre_constants.error: + warnings.warn("invalid pattern (%s) passed to Regex" % pattern, + SyntaxWarning, stacklevel=2) + raise + + elif isinstance(pattern, Regex.compiledREtype): + self.re = pattern + self.pattern = \ + self.reString = str(pattern) + self.flags = flags + + else: + raise ValueError("Regex may only be constructed with a string or a compiled RE object") self.name = _ustr(self) self.errmsg = "Expected " + self.name - #self.myException.msg = self.errmsg self.mayIndexError = False self.mayReturnEmpty = True def parseImpl( self, instring, loc, doActions=True ): result = self.re.match(instring,loc) if not result: - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) loc = result.end() d = result.groupdict() @@ -1861,7 +1766,8 @@ self.pattern += (r'|(?:%s)' % re.escape(escQuote)) if escChar: self.pattern += (r'|(?:%s.)' % re.escape(escChar)) - self.escCharReplacePattern = re.escape(self.escChar)+"(.)" + charset = ''.join(set(self.quoteChar[0]+self.endQuoteChar[0])).replace('^',r'\^').replace('-',r'\-') + self.escCharReplacePattern = re.escape(self.escChar)+("([%s])" % charset) self.pattern += (r')*%s' % re.escape(self.endQuoteChar)) try: @@ -1874,17 +1780,13 @@ self.name = _ustr(self) self.errmsg = "Expected " + self.name - #self.myException.msg = self.errmsg self.mayIndexError = False self.mayReturnEmpty = True def parseImpl( self, instring, loc, doActions=True ): result = instring[loc] == self.firstQuoteChar and self.re.match(instring,loc) or None if not result: - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) loc = result.end() ret = result.group() @@ -1920,8 +1822,8 @@ class CharsNotIn(Token): """Token for matching words composed of characters *not* in a given set. Defined with string containing all disallowed characters, and an optional - minimum, maximum, and/or exact length. The default value for min is 1 (a - minimum value < 1 is not valid); the default values for max and exact + minimum, maximum, and/or exact length. The default value for C{min} is 1 (a + minimum value < 1 is not valid); the default values for C{max} and C{exact} are 0, meaning no maximum or exact length restriction. """ def __init__( self, notChars, min=1, max=0, exact=0 ): @@ -1946,16 +1848,11 @@ self.name = _ustr(self) self.errmsg = "Expected " + self.name self.mayReturnEmpty = ( self.minLen == 0 ) - #self.myException.msg = self.errmsg self.mayIndexError = False def parseImpl( self, instring, loc, doActions=True ): if instring[loc] in self.notChars: - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) start = loc loc += 1 @@ -1966,11 +1863,7 @@ loc += 1 if loc - start < self.minLen: - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) return loc, instring[start:loc] @@ -1992,8 +1885,8 @@ """Special matching class for matching whitespace. Normally, whitespace is ignored by pyparsing grammars. This class is included when some whitespace structures are significant. Define with a string containing the whitespace characters to be - matched; default is " \\t\\r\\n". Also takes optional min, max, and exact arguments, - as defined for the Word class.""" + matched; default is C{" \\t\\r\\n"}. Also takes optional C{min}, C{max}, and C{exact} arguments, + as defined for the C{Word} class.""" whiteStrs = { " " : "", "\t": "", @@ -2009,7 +1902,6 @@ self.name = ("".join([White.whiteStrs[c] for c in self.matchWhite])) self.mayReturnEmpty = True self.errmsg = "Expected " + self.name - #self.myException.msg = self.errmsg self.minLen = min @@ -2024,11 +1916,7 @@ def parseImpl( self, instring, loc, doActions=True ): if not(instring[ loc ] in self.matchWhite): - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) start = loc loc += 1 maxloc = start + self.maxLen @@ -2037,11 +1925,7 @@ loc += 1 if loc - start < self.minLen: - #~ raise ParseException( instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) return loc, instring[start:loc] @@ -2082,7 +1966,6 @@ super(LineStart,self).__init__() self.setWhitespaceChars( ParserElement.DEFAULT_WHITE_CHARS.replace("\n","") ) self.errmsg = "Expected start of line" - #self.myException.msg = self.errmsg def preParse( self, instring, loc ): preloc = super(LineStart,self).preParse(instring,loc) @@ -2094,11 +1977,7 @@ if not( loc==0 or (loc == self.preParse( instring, 0 )) or (instring[loc-1] == "\n") ): #col(loc, instring) != 1: - #~ raise ParseException( instring, loc, "Expected start of line" ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) return loc, [] class LineEnd(_PositionToken): @@ -2107,42 +1986,29 @@ super(LineEnd,self).__init__() self.setWhitespaceChars( ParserElement.DEFAULT_WHITE_CHARS.replace("\n","") ) self.errmsg = "Expected end of line" - #self.myException.msg = self.errmsg def parseImpl( self, instring, loc, doActions=True ): if loc len(instring): return loc, [] else: - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) class WordStart(_PositionToken): """Matches if the current position is at the beginning of a Word, and - is not preceded by any character in a given set of wordChars - (default=printables). To emulate the \b behavior of regular expressions, - use WordStart(alphanums). WordStart will also match at the beginning of + is not preceded by any character in a given set of C{wordChars} + (default=C{printables}). To emulate the C{\b} behavior of regular expressions, + use C{WordStart(alphanums)}. C{WordStart} will also match at the beginning of the string being parsed, or at the beginning of a line. """ def __init__(self, wordChars = printables): super(WordStart,self).__init__() - self.wordChars = _str2dict(wordChars) + self.wordChars = set(wordChars) self.errmsg = "Not at the start of a word" def parseImpl(self, instring, loc, doActions=True ): if loc != 0: if (instring[loc-1] in self.wordChars or instring[loc] not in self.wordChars): - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) return loc, [] class WordEnd(_PositionToken): """Matches if the current position is at the end of a Word, and - is not followed by any character in a given set of wordChars - (default=printables). To emulate the \b behavior of regular expressions, - use WordEnd(alphanums). WordEnd will also match at the end of + is not followed by any character in a given set of C{wordChars} + (default=C{printables}). To emulate the C{\b} behavior of regular expressions, + use C{WordEnd(alphanums)}. C{WordEnd} will also match at the end of the string being parsed, or at the end of a line. """ def __init__(self, wordChars = printables): super(WordEnd,self).__init__() - self.wordChars = _str2dict(wordChars) + self.wordChars = set(wordChars) self.skipWhitespace = False self.errmsg = "Not at the end of a word" @@ -2209,11 +2064,7 @@ if instrlen>0 and loc maxExcLoc: maxException = err maxExcLoc = err.loc @@ -2445,9 +2301,9 @@ class MatchFirst(ParseExpression): - """Requires that at least one ParseExpression is found. + """Requires that at least one C{ParseExpression} is found. If two expressions match, the first one listed is the one that will match. - May be constructed using the '|' operator. + May be constructed using the C{'|'} operator. """ def __init__( self, exprs, savelist = False ): super(MatchFirst,self).__init__(exprs, savelist) @@ -2504,9 +2360,9 @@ class Each(ParseExpression): - """Requires all given ParseExpressions to be found, but in any order. + """Requires all given C{ParseExpression}s to be found, but in any order. Expressions may be separated by whitespace. - May be constructed using the '&' operator. + May be constructed using the C{'&'} operator. """ def __init__( self, exprs, savelist = True ): super(Each,self).__init__(exprs, savelist) @@ -2520,7 +2376,9 @@ def parseImpl( self, instring, loc, doActions=True ): if self.initExprGroups: - self.optionals = [ e.expr for e in self.exprs if isinstance(e,Optional) ] + opt1 = [ e.expr for e in self.exprs if isinstance(e,Optional) ] + opt2 = [ e for e in self.exprs if e.mayReturnEmpty and e not in opt1 ] + self.optionals = opt1 + opt2 self.multioptionals = [ e.expr for e in self.exprs if isinstance(e,ZeroOrMore) ] self.multirequired = [ e.expr for e in self.exprs if isinstance(e,OneOrMore) ] self.required = [ e for e in self.exprs if not isinstance(e,(Optional,ZeroOrMore,OneOrMore)) ] @@ -2590,7 +2448,7 @@ class ParseElementEnhance(ParserElement): - """Abstract subclass of ParserElement, for combining and post-processing parsed tokens.""" + """Abstract subclass of C{ParserElement}, for combining and post-processing parsed tokens.""" def __init__( self, expr, savelist=False ): super(ParseElementEnhance,self).__init__(savelist) if isinstance( expr, basestring ): @@ -2662,10 +2520,10 @@ class FollowedBy(ParseElementEnhance): - """Lookahead matching of the given parse expression. FollowedBy + """Lookahead matching of the given parse expression. C{FollowedBy} does *not* advance the parsing position within the input string, it only verifies that the specified parse expression matches at the current - position. FollowedBy always returns a null token list.""" + position. C{FollowedBy} always returns a null token list.""" def __init__( self, expr ): super(FollowedBy,self).__init__(expr) self.mayReturnEmpty = True @@ -2676,10 +2534,10 @@ class NotAny(ParseElementEnhance): - """Lookahead to disallow matching with the given parse expression. NotAny + """Lookahead to disallow matching with the given parse expression. C{NotAny} does *not* advance the parsing position within the input string, it only verifies that the specified parse expression does *not* match at the current - position. Also, NotAny does *not* skip over leading whitespace. NotAny + position. Also, C{NotAny} does *not* skip over leading whitespace. C{NotAny} always returns a null token list. May be constructed using the '~' operator.""" def __init__( self, expr ): super(NotAny,self).__init__(expr) @@ -2687,7 +2545,6 @@ self.skipWhitespace = False # do NOT use self.leaveWhitespace(), don't want to propagate to exprs self.mayReturnEmpty = True self.errmsg = "Found unwanted token, "+_ustr(self.expr) - #self.myException = ParseException("",0,self.errmsg,self) def parseImpl( self, instring, loc, doActions=True ): try: @@ -2695,11 +2552,7 @@ except (ParseException,IndexError): pass else: - #~ raise ParseException(instring, loc, self.errmsg ) - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) return loc, [] def __str__( self ): @@ -2829,8 +2682,8 @@ class SkipTo(ParseElementEnhance): """Token for skipping over all undefined text until the matched expression is found. - If include is set to true, the matched expression is also parsed (the skipped text - and matched expression are returned as a 2-element list). The ignore + If C{include} is set to true, the matched expression is also parsed (the skipped text + and matched expression are returned as a 2-element list). The C{ignore} argument is used to define grammars (typically quoted strings and comments) that might contain false matches. """ @@ -2846,7 +2699,6 @@ else: self.failOn = failOn self.errmsg = "No match found for "+_ustr(self.expr) - #self.myException = ParseException("",0,self.errmsg,self) def parseImpl( self, instring, loc, doActions=True ): startLoc = loc @@ -2888,23 +2740,20 @@ raise else: loc += 1 - exc = self.myException - exc.loc = loc - exc.pstr = instring - raise exc + raise ParseException(instring, loc, self.errmsg, self) class Forward(ParseElementEnhance): """Forward declaration of an expression to be defined later - used for recursive grammars, such as algebraic infix notation. - When the expression is known, it is assigned to the Forward variable using the '<<' operator. + When the expression is known, it is assigned to the C{Forward} variable using the '<<' operator. - Note: take care when assigning to Forward not to overlook precedence of operators. + Note: take care when assigning to C{Forward} not to overlook precedence of operators. Specifically, '|' has a lower precedence than '<<', so that:: fwdExpr << a | b | c will actually be evaluated as:: (fwdExpr << a) | b | c thereby leaving b and c out as parseable alternatives. It is recommended that you - explicitly group the values inserted into the Forward:: + explicitly group the values inserted into the C{Forward}:: fwdExpr << (a | b | c) """ def __init__( self, other=None ): @@ -2970,7 +2819,7 @@ return "..." class TokenConverter(ParseElementEnhance): - """Abstract subclass of ParseExpression, for converting parsed results.""" + """Abstract subclass of C{ParseExpression}, for converting parsed results.""" def __init__( self, expr, savelist=False ): super(TokenConverter,self).__init__( expr )#, savelist ) self.saveAsList = False @@ -2989,7 +2838,7 @@ class Combine(TokenConverter): """Converter to concatenate all matching tokens to a single string. By default, the matching patterns must also be contiguous in the input string; - this can be disabled by specifying 'adjacent=False' in the constructor. + this can be disabled by specifying C{'adjacent=False'} in the constructor. """ def __init__( self, expr, joinString="", adjacent=True ): super(Combine,self).__init__( expr ) @@ -2999,6 +2848,7 @@ self.adjacent = adjacent self.skipWhitespace = True self.joinString = joinString + self.callPreparse = True def ignore( self, other ): if self.adjacent: @@ -3018,7 +2868,7 @@ return retToks class Group(TokenConverter): - """Converter to return the matched tokens as a list - useful for returning tokens of ZeroOrMore and OneOrMore expressions.""" + """Converter to return the matched tokens as a list - useful for returning tokens of C{ZeroOrMore} and C{OneOrMore} expressions.""" def __init__( self, expr ): super(Group,self).__init__( expr ) self.saveAsList = True @@ -3072,7 +2922,7 @@ class OnlyOnce(object): """Wrapper for parse actions, to ensure they are only called once.""" def __init__(self, methodCall): - self.callable = ParserElement._normalizeParseActionArgs(methodCall) + self.callable = _trim_arity(methodCall) self.called = False def __call__(self,s,l,t): if not self.called: @@ -3085,7 +2935,7 @@ def traceParseAction(f): """Decorator for debugging parse actions.""" - f = ParserElement._normalizeParseActionArgs(f) + f = _trim_arity(f) def z(*paArgs): thisFunc = f.func_name s,l,t = paArgs[-3:] @@ -3094,8 +2944,7 @@ sys.stderr.write( ">>entering %s(line: '%s', %d, %s)\n" % (thisFunc,line(l,s),l,t) ) try: ret = f(*paArgs) - except Exception: - exc = sys.exc_info()[1] + except Exception as exc: sys.stderr.write( "<") else: printablesLessRAbrack = "".join( [ c for c in printables if c not in ">" ] ) tagAttrValue = quotedString.copy().setParseAction( removeQuotes ) | Word(printablesLessRAbrack) - openTag = Suppress("<") + tagStr + \ + openTag = Suppress("<") + tagStr("tag") + \ Dict(ZeroOrMore(Group( tagAttrName.setParseAction(downcaseTokens) + \ Optional( Suppress("=") + tagAttrValue ) ))) + \ Optional("/",default=[False]).setResultsName("empty").setParseAction(lambda s,l,t:t[0]=='/') + Suppress(">") @@ -3420,7 +3288,8 @@ openTag = openTag.setResultsName("start"+"".join(resname.replace(":"," ").title().split())).setName("<%s>" % tagStr) closeTag = closeTag.setResultsName("end"+"".join(resname.replace(":"," ").title().split())).setName("" % tagStr) - + openTag.tag = resname + closeTag.tag = resname return openTag, closeTag def makeHTMLTags(tagStr): @@ -3433,19 +3302,21 @@ def withAttribute(*args,**attrDict): """Helper to create a validating parse action to be used with start tags created - with makeXMLTags or makeHTMLTags. Use withAttribute to qualify a starting tag + with C{makeXMLTags} or C{makeHTMLTags}. Use C{withAttribute} to qualify a starting tag with a required attribute value, to avoid false matches on common tags such as - or
. + C{} or C{
}. - Call withAttribute with a series of attribute names and values. Specify the list + Call C{withAttribute} with a series of attribute names and values. Specify the list of filter attributes names and values as: - - keyword arguments, as in (class="Customer",align="right"), or + - keyword arguments, as in C{(align="right")}, or + - as an explicit dict with C{**} operator, when an attribute name is also a Python + reserved word, as in C{**{"class":"Customer", "align":"right"}} - a list of name-value tuples, as in ( ("ns1:class", "Customer"), ("ns2:align","right") ) For attribute names with a namespace prefix, you must use the second form. Attribute names are matched insensitive to upper/lower case. To verify that the attribute exists, but without specifying a value, pass - withAttribute.ANY_VALUE as the value. + C{withAttribute.ANY_VALUE} as the value. """ if args: attrs = args[:] @@ -3542,7 +3413,7 @@ quotedString = Regex(r'''(?:"(?:[^"\n\r\\]|(?:"")|(?:\\x[0-9a-fA-F]+)|(?:\\.))*")|(?:'(?:[^'\n\r\\]|(?:'')|(?:\\x[0-9a-fA-F]+)|(?:\\.))*')''').setName("quotedString using single or double quotes") unicodeString = Combine(_L('u') + quotedString.copy()) -def nestedExpr(opener="(", closer=")", content=None, ignoreExpr=quotedString): +def nestedExpr(opener="(", closer=")", content=None, ignoreExpr=quotedString.copy()): """Helper method for defining nested lists enclosed in opening and closing delimiters ("(" and ")" are the default). @@ -3556,12 +3427,12 @@ expression will capture all whitespace-delimited content between delimiters as a list of separate values. - Use the ignoreExpr argument to define expressions that may contain + Use the C{ignoreExpr} argument to define expressions that may contain opening or closing characters that should not be treated as opening or closing characters for nesting, such as quotedString or a comment - expression. Specify multiple expressions using an Or or MatchFirst. - The default is quotedString, but if no expressions are to be ignored, - then pass None for this argument. + expression. Specify multiple expressions using an C{L{Or}} or C{L{MatchFirst}}. + The default is L{quotedString}, but if no expressions are to be ignored, + then pass C{None} for this argument. """ if opener == closer: raise ValueError("opening and closing strings cannot be the same") @@ -3573,7 +3444,7 @@ CharsNotIn(opener+closer+ParserElement.DEFAULT_WHITE_CHARS,exact=1)) ).setParseAction(lambda t:t[0].strip())) else: - content = (empty+CharsNotIn(opener+closer+ParserElement.DEFAULT_WHITE_CHARS + content = (empty.copy()+CharsNotIn(opener+closer+ParserElement.DEFAULT_WHITE_CHARS ).setParseAction(lambda t:t[0].strip())) else: if ignoreExpr is not None: @@ -3608,7 +3479,7 @@ the current level; set to False for block of left-most statements (default=True) - A valid block must contain at least one blockStatement. + A valid block must contain at least one C{blockStatement}. """ def checkPeerIndent(s,l,t): if l >= len(s): return @@ -3638,7 +3509,7 @@ UNDENT = Empty().setParseAction(checkUnindent) if indent: smExpr = Group( Optional(NL) + - FollowedBy(blockStatementExpr) + + #~ FollowedBy(blockStatementExpr) + INDENT + (OneOrMore( PEER + Group(blockStatementExpr) + Optional(NL) )) + UNDENT) else: smExpr = Group( Optional(NL) + @@ -3668,7 +3539,7 @@ _commasepitem = Combine(OneOrMore(Word(_noncomma) + Optional( Word(" \t") + ~Literal(",") + ~LineEnd() ) ) ).streamline().setName("commaItem") -commaSeparatedList = delimitedList( Optional( quotedString | _commasepitem, default="") ).setName("commaSeparatedList") +commaSeparatedList = delimitedList( Optional( quotedString.copy() | _commasepitem, default="") ).setName("commaSeparatedList") if __name__ == "__main__": @@ -3682,8 +3553,7 @@ print ("tokens.columns = " + str(tokens.columns)) print ("tokens.tables = " + str(tokens.tables)) print (tokens.asXML("SQL",True)) - except ParseBaseException: - err = sys.exc_info()[1] + except ParseBaseException as err: print (teststring + "->") print (err.line) print (" "*(err.column-1) + "^") diff -Nru pycharm-2018.3.5/helpers/pycharm_generator_utils/util_methods.py pycharm-2019.1/helpers/pycharm_generator_utils/util_methods.py --- pycharm-2018.3.5/helpers/pycharm_generator_utils/util_methods.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_generator_utils/util_methods.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,6 +1,8 @@ -from pycharm_generator_utils.constants import * +import ast import keyword +from pycharm_generator_utils.constants import * + try: import inspect except ImportError: @@ -236,7 +238,7 @@ def sorted_no_case(p_array): - """Sort an array case insensitevely, returns a sorted copy""" + """Sort an array case insensitively, returns a sorted copy""" p_array = list(p_array) p_array = sorted(p_array, key=lambda x: x.upper()) return p_array @@ -259,10 +261,20 @@ if replacement: result.append(value[prev:i]) result.append(replacement) + prev = i + 1 i += 1 + result.append(value[prev:]) return "".join(result) +def is_valid_expr(s): + try: + compile(s, '', 'eval', ast.PyCF_ONLY_AST) + except SyntaxError: + return False + return True + + _prop_types = [type(property())] #noinspection PyBroadException try: @@ -615,9 +627,14 @@ CURRENT_ACTION = msg % data note(msg, *data) + +def set_verbose(verbose): + global _is_verbose + _is_verbose = verbose + + def note(msg, *data): """Say something at debug info level (stderr)""" - global _is_verbose if _is_verbose: sys.stderr.write(msg % data) sys.stderr.write("\n") diff -Nru pycharm-2018.3.5/helpers/pycharm_matplotlib_backend/backend_interagg.py pycharm-2019.1/helpers/pycharm_matplotlib_backend/backend_interagg.py --- pycharm-2018.3.5/helpers/pycharm_matplotlib_backend/backend_interagg.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycharm_matplotlib_backend/backend_interagg.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,20 +1,22 @@ +import base64 import matplotlib import os -import socket -import struct +import sys + from matplotlib._pylab_helpers import Gcf from matplotlib.backend_bases import FigureManagerBase, ShowBase from matplotlib.backends.backend_agg import FigureCanvasAgg from matplotlib.figure import Figure -HOST = 'localhost' -PORT = os.getenv("PYCHARM_MATPLOTLIB_PORT") -PORT = int(PORT) if PORT is not None else None -PORT = PORT if PORT != -1 else None +from datalore.display import display + +PY3 = sys.version_info[0] >= 3 + index = int(os.getenv("PYCHARM_MATPLOTLIB_INDEX", 0)) rcParams = matplotlib.rcParams + class Show(ShowBase): def __call__(self, **kwargs): managers = Gcf.get_all_fig_managers() @@ -61,8 +63,6 @@ def show(self): self.figure.tight_layout() FigureCanvasAgg.draw(self) - if PORT is None: - return if matplotlib.__version__ < '1.2': buffer = self.tostring_rgb(0, 0) @@ -77,18 +77,10 @@ width = int(render.width) plot_index = index if os.getenv("PYCHARM_MATPLOTLIB_INTERACTIVE", False) else -1 - try: - sock = socket.socket() - sock.connect((HOST, PORT)) - sock.send(struct.pack('>i', width)) - sock.send(struct.pack('>i', plot_index)) - sock.send(struct.pack('>i', len(buffer))) - sock.send(buffer) - except OSError as _: - # nothing bad. It just means, that our tool window doesn't run yet - pass + display(DisplayDataObject(plot_index, width, buffer)) def draw(self): + FigureCanvasAgg.draw(self) is_interactive = os.getenv("PYCHARM_MATPLOTLIB_INTERACTIVE", False) if is_interactive and matplotlib.is_interactive(): self.show() @@ -106,3 +98,21 @@ def show(self, **kwargs): self.canvas.show() Gcf.destroy(self._num) + + +class DisplayDataObject: + def __init__(self, plot_index, width, image_bytes): + self.plot_index = plot_index + self.image_width = width + self.image_bytes = image_bytes + + def _repr_display_(self): + image_bytes_base64 = base64.b64encode(self.image_bytes) + if PY3: + image_bytes_base64 = image_bytes_base64.decode() + body = { + 'plot_index': self.plot_index, + 'image_width': self.image_width, + 'image_base64': image_bytes_base64 + } + return ('pycharm-plot-image', body) diff -Nru pycharm-2018.3.5/helpers/pycodestyle.py pycharm-2019.1/helpers/pycodestyle.py --- pycharm-2018.3.5/helpers/pycodestyle.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pycodestyle.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,5 +1,6 @@ #!/usr/bin/env python -# pycodestyle.py - Check Python source code formatting, according to PEP 8 +# pycodestyle.py - Check Python source code formatting, according to +# PEP 8 # # Copyright (C) 2006-2009 Johann C. Rocholl # Copyright (C) 2009-2014 Florent Xicluna @@ -48,7 +49,6 @@ """ from __future__ import with_statement -import bisect import inspect import keyword import os @@ -57,14 +57,15 @@ import time import tokenize import warnings +import bisect try: from functools import lru_cache except ImportError: def lru_cache(maxsize=128): # noqa as it's a fake implementation. - """Does not really need a real a lru_cache, it's just optimization, so - let's just do nothing here. Python 3.2+ will just get better - performances, time to upgrade? + """Does not really need a real a lru_cache, it's just + optimization, so let's just do nothing here. Python 3.2+ will + just get better performances, time to upgrade? """ return lambda function: function @@ -102,6 +103,7 @@ # Methods and nested class and function. 'method': 1, } +MAX_DOC_LENGTH = 72 REPORT_FORMAT = { 'default': '%(path)s:%(row)d:%(col)d: %(code)s %(text)s', 'pylint': '%(path)s:%(row)d: [%(code)s] %(text)s', @@ -113,9 +115,12 @@ UNARY_OPERATORS = frozenset(['>>', '**', '*', '+', '-']) ARITHMETIC_OP = frozenset(['**', '*', '/', '//', '+', '-']) WS_OPTIONAL_OPERATORS = ARITHMETIC_OP.union(['^', '&', '|', '<<', '>>', '%']) +# Warn for -> function annotation operator in py3.5+ (issue 803) +FUNCTION_RETURN_ANNOTATION_OP = ['->'] if sys.version_info >= (3, 5) else [] WS_NEEDED_OPERATORS = frozenset([ '**=', '*=', '/=', '//=', '+=', '-=', '!=', '<>', '<', '>', - '%=', '^=', '&=', '|=', '==', '<=', '>=', '<<=', '>>=', '=']) + '%=', '^=', '&=', '|=', '==', '<=', '>=', '<<=', '>>=', '='] + + FUNCTION_RETURN_ANNOTATION_OP) WHITESPACE = frozenset(' \t') NEWLINE = frozenset([tokenize.NL, tokenize.NEWLINE]) SKIP_TOKENS = NEWLINE.union([tokenize.INDENT, tokenize.DEDENT]) @@ -154,11 +159,6 @@ ) DUNDER_REGEX = re.compile(r'^__([^\s]+)__ = ') -# Work around Python < 2.6 behaviour, which does not generate NL after -# a comment which is on a line by itself. -COMMENT_WITH_NL = tokenize.generate_tokens(['#\n'].pop).send(None)[1] == '#\n' - - _checks = {'physical_line': {}, 'logical_line': {}, 'tree': {}} @@ -191,20 +191,21 @@ return check -############################################################################## +######################################################################## # Plugins (check functions) for physical lines -############################################################################## +######################################################################## @register_check def tabs_or_spaces(physical_line, indent_char): r"""Never mix tabs and spaces. The most popular way of indenting Python is with spaces only. The - second-most popular way is with tabs only. Code indented with a mixture - of tabs and spaces should be converted to using spaces exclusively. When - invoking the Python command line interpreter with the -t option, it issues - warnings about code that illegally mixes tabs and spaces. When using -tt - these warnings become errors. These options are highly recommended! + second-most popular way is with tabs only. Code indented with a + mixture of tabs and spaces should be converted to using spaces + exclusively. When invoking the Python command line interpreter with + the -t option, it issues warnings about code that illegally mixes + tabs and spaces. When using -tt these warnings become errors. + These options are highly recommended! Okay: if a == 0:\n a = 1\n b = 1 E101: if a == 0:\n a = 1\n\tb = 1 @@ -217,7 +218,7 @@ @register_check def tabs_obsolete(physical_line): - r"""For new projects, spaces-only are strongly recommended over tabs. + r"""On new projects, spaces-only are strongly recommended over tabs. Okay: if True:\n return W191: if True:\n\treturn @@ -231,8 +232,8 @@ def trailing_whitespace(physical_line): r"""Trailing whitespace is superfluous. - The warning returned varies on whether the line itself is blank, for easier - filtering for those who want to indent their blank lines. + The warning returned varies on whether the line itself is blank, + for easier filtering for those who want to indent their blank lines. Okay: spam(1)\n# W291: spam(1) \n# @@ -260,10 +261,10 @@ """ if line_number == total_lines: stripped_last_line = physical_line.rstrip() - if not stripped_last_line: + if physical_line and not stripped_last_line: return 0, "W391 blank line at end of file" if stripped_last_line == physical_line: - return len(physical_line), "W292 no newline at end of file" + return len(lines[-1]), "W292 no newline at end of file" @register_check @@ -272,11 +273,11 @@ r"""Limit all lines to a maximum of 79 characters. There are still many devices around that are limited to 80 character - lines; plus, limiting windows to 80 characters makes it possible to have - several windows side-by-side. The default wrapping on such devices looks - ugly. Therefore, please limit all lines to a maximum of 79 characters. - For flowing long blocks of text (docstrings or comments), limiting the - length to 72 characters is recommended. + lines; plus, limiting windows to 80 characters makes it possible to + have several windows side-by-side. The default wrapping on such + devices looks ugly. Therefore, please limit all lines to a maximum + of 79 characters. For flowing long blocks of text (docstrings or + comments), limiting the length to 72 characters is recommended. Reports error E501. """ @@ -286,8 +287,9 @@ # Special case: ignore long shebang lines. if line_number == 1 and line.startswith('#!'): return - # Special case for long URLs in multi-line docstrings or comments, - # but still report the error when the 72 first chars are whitespaces. + # Special case for long URLs in multi-line docstrings or + # comments, but still report the error when the 72 first chars + # are whitespaces. chunks = line.split() if ((len(chunks) == 1 and multiline) or (len(chunks) == 2 and chunks[0] == '#')) and \ @@ -304,9 +306,9 @@ "(%d > %d characters)" % (length, max_line_length)) -############################################################################## +######################################################################## # Plugins (check functions) for logical lines -############################################################################## +######################################################################## @register_check @@ -314,15 +316,18 @@ blank_before, previous_logical, previous_unindented_logical_line, previous_indent_level, lines): - r"""Separate top-level function and class definitions with two blank lines. + r"""Separate top-level function and class definitions with two blank + lines. - Method definitions inside a class are separated by a single blank line. + Method definitions inside a class are separated by a single blank + line. - Extra blank lines may be used (sparingly) to separate groups of related - functions. Blank lines may be omitted between a bunch of related - one-liners (e.g. a set of dummy implementations). + Extra blank lines may be used (sparingly) to separate groups of + related functions. Blank lines may be omitted between a bunch of + related one-liners (e.g. a set of dummy implementations). - Use blank lines in functions, sparingly, to indicate logical sections. + Use blank lines in functions, sparingly, to indicate logical + sections. Okay: def a():\n pass\n\n\ndef b():\n pass Okay: def a():\n pass\n\n\nasync def b():\n pass @@ -338,7 +343,7 @@ E304: @decorator\n\ndef a():\n pass E305: def a():\n pass\na() E306: def a():\n def b():\n pass\n def c():\n pass - """ + """ # noqa top_level_lines = BLANK_LINES_CONFIG['top_level'] method_lines = BLANK_LINES_CONFIG['method'] @@ -359,7 +364,8 @@ ): ancestor_level = indent_level nested = False - # Search backwards for a def ancestor or tree root (top level). + # Search backwards for a def ancestor or tree root + # (top level). for line in lines[line_number - top_level_lines::-1]: if line.strip() and expand_indent(line) < ancestor_level: ancestor_level = expand_indent(line) @@ -444,8 +450,8 @@ @register_check def missing_whitespace_after_import_keyword(logical_line): - r"""Multiple imports in form from x import (a, b, c) should have space - between import statement and parenthesised name list. + r"""Multiple imports in form from x import (a, b, c) should have + space between import statement and parenthesised name list. Okay: from foo import (bar, baz) E275: from foo import(bar, baz) @@ -492,8 +498,8 @@ indent_level, previous_indent_level): r"""Use 4 spaces per indentation level. - For really old code that you don't want to mess up, you can continue to - use 8-space tabs. + For really old code that you don't want to mess up, you can continue + to use 8-space tabs. Okay: a = 1 Okay: if a == 0:\n a = 1 @@ -530,8 +536,8 @@ When using a hanging indent these considerations should be applied: - there should be no arguments on the first line, and - - further indentation should be used to clearly distinguish itself as a - continuation line. + - further indentation should be used to clearly distinguish itself + as a continuation line. Okay: a = (\n) E123: a = (\n ) @@ -616,7 +622,8 @@ yield (start, "E124 closing bracket does not match " "visual indentation") elif close_bracket and not hang: - # closing bracket matches indentation of opening bracket's line + # closing bracket matches indentation of opening + # bracket's line if hang_closing: yield start, "E133 closing bracket is missing indentation" elif indent[depth] and start[1] < indent[depth]: @@ -634,7 +641,8 @@ # visual indent is verified indent[depth] = start[1] elif visual_indent in (text, str): - # ignore token lined up with matching one from a previous line + # ignore token lined up with matching one from a + # previous line pass else: # indent is broken @@ -847,7 +855,7 @@ elif text in WS_NEEDED_OPERATORS: need_space = True elif text in UNARY_OPERATORS: - # Check if the operator is being used as a binary operator + # Check if the operator is used as a binary operator # Allow unary operators: -123, -x, +1. # Allow argument unpacking: foo(*args, **kwargs). if (prev_text in '}])' if prev_type == tokenize.OP @@ -893,8 +901,8 @@ r"""Don't use spaces around the '=' sign in function arguments. Don't use spaces around the '=' sign when used to indicate a - keyword argument or a default parameter value, except when using a type - annotation. + keyword argument or a default parameter value, except when + using a type annotation. Okay: def complex(real, imag=0.0): Okay: return magic(r=real, i=imag) @@ -937,17 +945,17 @@ parens -= 1 elif in_def and text == ':' and parens == 1: annotated_func_arg = True - elif parens and text == ',' and parens == 1: + elif parens == 1 and text == ',': annotated_func_arg = False elif parens and text == '=': - if not annotated_func_arg: - no_space = True - if start != prev_end: - yield (prev_end, message) - else: + if annotated_func_arg and parens == 1: require_space = True if start == prev_end: yield (prev_end, missing_message) + else: + no_space = True + if start != prev_end: + yield (prev_end, message) if not parens: annotated_func_arg = False @@ -958,9 +966,9 @@ def whitespace_before_comment(logical_line, tokens): r"""Separate inline comments by at least two spaces. - An inline comment is a comment on the same line as a statement. Inline - comments should be separated by at least two spaces from the statement. - They should start with a # and a single space. + An inline comment is a comment on the same line as a statement. + Inline comments should be separated by at least two spaces from the + statement. They should start with a # and a single space. Each line of a block comment starts with a # and a single space (unless it is indented text inside the comment). @@ -1021,8 +1029,8 @@ logical_line, indent_level, checker_state, noqa): r"""Place imports at the top of the file. - Always put imports at the top of the file, just after any module comments - and docstrings, and before module globals and constants. + Always put imports at the top of the file, just after any module + comments and docstrings, and before module globals and constants. Okay: import os Okay: # this is a comment\nimport os @@ -1037,7 +1045,7 @@ E402: a=1\nfrom sys import x Okay: if x:\n import os - """ + """ # noqa def is_string_literal(line): if line[0] in 'uUbB': line = line[1:] @@ -1047,7 +1055,7 @@ allowed_try_keywords = ('try', 'except', 'else', 'finally') - if indent_level: # Allow imports in conditional statements or functions + if indent_level: # Allow imports in conditional statement/function return if not logical_line: # Allow empty lines or comments return @@ -1060,11 +1068,12 @@ elif re.match(DUNDER_REGEX, line): return elif any(line.startswith(kw) for kw in allowed_try_keywords): - # Allow try, except, else, finally keywords intermixed with imports in - # order to support conditional importing + # Allow try, except, else, finally keywords intermixed with + # imports in order to support conditional importing return elif is_string_literal(line): - # The first literal is a docstring, allow it. Otherwise, report error. + # The first literal is a docstring, allow it. Otherwise, report + # error. if checker_state.get('seen_docstring', False): checker_state['seen_non_imports'] = True else: @@ -1075,7 +1084,8 @@ @register_check def compound_statements(logical_line): - r"""Compound statements (on the same line) are generally discouraged. + r"""Compound statements (on the same line) are generally + discouraged. While sometimes it's okay to put an if/for/while with a small body on the same line, never do this for multi-clause statements. @@ -1106,7 +1116,7 @@ last_char = len(line) - 1 found = line.find(':') prev_found = 0 - counts = dict((char, 0) for char in '{}[]()') + counts = {char: 0 for char in '{}[]()'} while -1 < found < last_char: update_counts(line[prev_found:found], counts) if ((counts['{'] <= counts['}'] and # {'a': 1} (dict) @@ -1138,10 +1148,11 @@ def explicit_line_join(logical_line, tokens): r"""Avoid explicit line join between brackets. - The preferred way of wrapping long lines is by using Python's implied line - continuation inside parentheses, brackets and braces. Long lines can be - broken over multiple lines by wrapping expressions in parentheses. These - should be used in preference to using a backslash for line continuation. + The preferred way of wrapping long lines is by using Python's + implied line continuation inside parentheses, brackets and braces. + Long lines can be broken over multiple lines by wrapping expressions + in parentheses. These should be used in preference to using a + backslash for line continuation. E502: aaa = [123, \\n 123] E502: aaa = ("bbb " \\n "ccc") @@ -1178,8 +1189,8 @@ is_op_token = token_type == tokenize.OP is_conjunction = text in ['and', 'or'] # NOTE(sigmavirus24): Previously the not_a_symbol check was executed - # conditionally. Since it is now *always* executed, text may be None. - # In that case we get a TypeError for `text not in str`. + # conditionally. Since it is now *always* executed, text may be + # None. In that case we get a TypeError for `text not in str`. not_a_symbol = text and text not in "()[]{},:.;@=%~" # The % character is strictly speaking a binary operator, but the # common usage seems to be to put it next to the format parameters, @@ -1266,6 +1277,7 @@ Okay: var = (1 /\n -2) Okay: var = (1 +\n -1 +\n -2) """ + prev_start = None for context in _break_around_binary_operators(tokens): (token_type, text, previous_token_type, previous_text, line_break, unary_context, start) = context @@ -1273,8 +1285,8 @@ line_break and not unary_context and not _is_binary_operator(token_type, text)): - error_pos = (start[0] - 1, start[1]) - yield error_pos, "W504 line break after binary operator" + yield prev_start, "W504 line break after binary operator" + prev_start = start @register_check @@ -1290,10 +1302,10 @@ E712: if arg == True: E712: if False == arg: - Also, beware of writing if x when you really mean if x is not None -- - e.g. when testing whether a variable or argument that defaults to None was - set to some other value. The other value might have a type (such as a - container) that could be false in a boolean context! + Also, beware of writing if x when you really mean if x is not None + -- e.g. when testing whether a variable or argument that defaults to + None was set to some other value. The other value might have a type + (such as a container) that could be false in a boolean context! """ match = not noqa and COMPARE_SINGLETON_REGEX.search(logical_line) if match: @@ -1343,9 +1355,9 @@ Okay: if isinstance(obj, int): E721: if type(obj) is type(1): - When checking if an object is a string, keep in mind that it might be a - unicode string too! In Python 2.3, str and unicode have a common base - class, basestring, so you can do: + When checking if an object is a string, keep in mind that it might + be a unicode string too! In Python 2.3, str and unicode have a + common base class, basestring, so you can do: Okay: if isinstance(obj, basestring): Okay: if type(a1) is type(b1): @@ -1360,7 +1372,8 @@ @register_check def bare_except(logical_line, noqa): - r"""When catching exceptions, mention specific exceptions when possible. + r"""When catching exceptions, mention specific exceptions when + possible. Okay: except Exception: Okay: except BaseException: @@ -1379,8 +1392,8 @@ def ambiguous_identifier(logical_line, tokens): r"""Never use the characters 'l', 'O', or 'I' as variable names. - In some fonts, these characters are indistinguishable from the numerals - one and zero. When tempted to use 'l', use 'L' instead. + In some fonts, these characters are indistinguishable from the + numerals one and zero. When tempted to use 'l', use 'L' instead. Okay: L = 0 Okay: o = 123 @@ -1389,9 +1402,9 @@ E741: O = 123 E741: I = 42 - Variables can be bound in several other contexts, including class and - function definitions, 'global' and 'nonlocal' statements, exception - handlers, and 'with' statements. + Variables can be bound in several other contexts, including class + and function definitions, 'global' and 'nonlocal' statements, + exception handlers, and 'with' statements. Okay: except AttributeError as o: Okay: with lock as L: @@ -1411,7 +1424,7 @@ if prev_text in idents_to_avoid: ident = prev_text pos = prev_start - # identifiers bound to a value with 'as', 'global', or 'nonlocal' + # identifiers bound to values with 'as', 'global', or 'nonlocal' if prev_text in ('as', 'global', 'nonlocal'): if text in idents_to_avoid: ident = text @@ -1430,7 +1443,8 @@ @register_check def python_3000_has_key(logical_line, noqa): - r"""The {}.has_key() method is removed in Python 3: use the 'in' operator. + r"""The {}.has_key() method is removed in Python 3: use the 'in' + operator. Okay: if "alph" in d:\n print d["alph"] W601: assert d.has_key('alph') @@ -1511,6 +1525,7 @@ for token_type, text, start, end, line in tokens: if token_type == tokenize.STRING: + start_line, start_col = start quote = text[-3:] if text[-3:] in ('"""', "'''") else text[-1] # Extract string modifiers (e.g. u or r) quote_pos = text.index(quote) @@ -1523,8 +1538,13 @@ while pos >= 0: pos += 1 if string[pos] not in valid: + line = start_line + string.count('\n', 0, pos) + if line == start_line: + col = start_col + len(prefix) + len(quote) + pos + else: + col = pos - string.rfind('\n', 0, pos) - 1 yield ( - pos, + (line, col - 1), "W605 invalid escape sequence '\\%s'" % string[pos], ) @@ -1533,15 +1553,16 @@ @register_check def python_3000_async_await_keywords(logical_line, tokens): - """'async' and 'await' are reserved keywords starting with Python 3.7 + """'async' and 'await' are reserved keywords starting at Python 3.7. W606: async = 42 W606: await = 42 - Okay: async def read_data(db):\n data = await db.fetch('SELECT ...') + Okay: async def read(db):\n data = await db.fetch('SELECT ...') """ - # The Python tokenize library before Python 3.5 recognizes async/await as a - # NAME token. Therefore, use a state machine to look for the possible - # async/await constructs as defined by the Python grammar: + # The Python tokenize library before Python 3.5 recognizes + # async/await as a NAME token. Therefore, use a state machine to + # look for the possible async/await constructs as defined by the + # Python grammar: # https://docs.python.org/3/reference/grammar.html state = None @@ -1556,14 +1577,15 @@ state = ('await', start) elif state[0] == 'async_stmt': if token_type == tokenize.NAME and text in ('def', 'with', 'for'): - # One of funcdef, with_stmt, or for_stmt. Return to looking - # for async/await names. + # One of funcdef, with_stmt, or for_stmt. Return to + # looking for async/await names. state = None else: error = True elif state[0] == 'await': - if token_type in (tokenize.NAME, tokenize.NUMBER, tokenize.STRING): - # An await expression. Return to looking for async/await names. + if token_type == tokenize.NAME: + # An await expression. Return to looking for async/await + # names. state = None else: error = True @@ -1585,9 +1607,64 @@ ) -############################################################################## +######################################################################## +@register_check +def maximum_doc_length(logical_line, max_doc_length, noqa, tokens): + r"""Limit all doc lines to a maximum of 72 characters. + + For flowing long blocks of text (docstrings or comments), limiting + the length to 72 characters is recommended. + + Reports warning W505 + """ + if max_doc_length is None or noqa: + return + + prev_token = None + skip_lines = set() + # Skip lines that + for token_type, text, start, end, line in tokens: + if token_type not in SKIP_COMMENTS.union([tokenize.STRING]): + skip_lines.add(line) + + for token_type, text, start, end, line in tokens: + # Skip lines that aren't pure strings + if token_type == tokenize.STRING and skip_lines: + continue + if token_type in (tokenize.STRING, tokenize.COMMENT): + # Only check comment-only lines + if prev_token is None or prev_token in SKIP_TOKENS: + lines = line.splitlines() + for line_num, physical_line in enumerate(lines): + if hasattr(physical_line, 'decode'): # Python 2 + # The line could contain multi-byte characters + try: + physical_line = physical_line.decode('utf-8') + except UnicodeError: + pass + if start[0] + line_num == 1 and line.startswith('#!'): + return + length = len(physical_line) + chunks = physical_line.split() + if token_type == tokenize.COMMENT: + if (len(chunks) == 2 and + length - len(chunks[-1]) < MAX_DOC_LENGTH): + continue + if len(chunks) == 1 and line_num + 1 < len(lines): + if (len(chunks) == 1 and + length - len(chunks[-1]) < MAX_DOC_LENGTH): + continue + if length > max_doc_length: + doc_error = (start[0] + line_num, max_doc_length) + yield (doc_error, "W505 doc line too long " + "(%d > %d characters)" + % (length, max_doc_length)) + prev_token = token_type + + +######################################################################## # Helper functions -############################################################################## +######################################################################## if sys.version_info < (3,): @@ -1684,14 +1761,16 @@ rv[path].update(range(row, row + nrows)) elif line[:3] == '+++': path = line[4:].split('\t', 1)[0] - # Git diff will use (i)ndex, (w)ork tree, (c)ommit and (o)bject - # instead of a/b/c/d as prefixes for patches + # Git diff will use (i)ndex, (w)ork tree, (c)ommit and + # (o)bject instead of a/b/c/d as prefixes for patches if path[:2] in ('b/', 'w/', 'i/'): path = path[2:] rv[path] = set() - return dict([(os.path.join(parent, path), rows) - for (path, rows) in rv.items() - if rows and filename_match(path, patterns)]) + return { + os.path.join(parent, filepath): rows + for (filepath, rows) in rv.items() + if rows and filename_match(filepath, patterns) + } def normalize_paths(value, parent=os.curdir): @@ -1734,14 +1813,9 @@ return token[0] in NEWLINE or token[4][token[3][1]:].lstrip() == '\\\n' -if COMMENT_WITH_NL: - def _is_eol_token(token, _eol_token=_is_eol_token): - return _eol_token(token) or (token[0] == tokenize.COMMENT and - token[1] == token[4]) - -############################################################################## +######################################################################## # Framework to run all checks -############################################################################## +######################################################################## class Checker(object): @@ -1758,6 +1832,7 @@ self._logical_checks = options.logical_checks self._ast_checks = options.ast_checks self.max_line_length = options.max_line_length + self.max_doc_length = options.max_doc_length self.multiline = False # in a multiline string? self.hang_closing = options.hang_closing self.verbose = options.verbose @@ -1918,7 +1993,7 @@ self.report_error(lineno, offset, text, check) def generate_tokens(self): - """Tokenize the file, run physical line checks and yield tokens.""" + """Tokenize file, run physical line checks and yield tokens.""" if self._io_error: self.report_error(1, 0, 'E902 %s' % self._io_error, readlines) tokengen = tokenize.generate_tokens(self.readline) @@ -1933,7 +2008,7 @@ self.report_invalid_syntax() def maybe_check_physical(self, token): - """If appropriate (based on token), check current physical line(s).""" + """If appropriate for token, check current physical line(s).""" # Called after every token, but act only on end of line. if _is_eol_token(token): # Obviously, a newline token ends a single physical line. @@ -1941,15 +2016,16 @@ elif token[0] == tokenize.STRING and '\n' in token[1]: # Less obviously, a string that contains newlines is a # multiline string, either triple-quoted or with internal - # newlines backslash-escaped. Check every physical line in the - # string *except* for the last one: its newline is outside of - # the multiline string, so we consider it a regular physical - # line, and will check it like any other physical line. + # newlines backslash-escaped. Check every physical line in + # the string *except* for the last one: its newline is + # outside of the multiline string, so we consider it a + # regular physical line, and will check it like any other + # physical line. # # Subtleties: - # - we don't *completely* ignore the last line; if it contains - # the magical "# noqa" comment, we disable all physical - # checks for the entire multiline string + # - we don't *completely* ignore the last line; if it + # contains the magical "# noqa" comment, we disable all + # physical checks for the entire multiline string # - have to wind self.line_number back because initially it # points to the last line of the string, and we want # check_physical() to give accurate feedback @@ -2004,14 +2080,6 @@ del self.tokens[0] else: self.check_logical() - elif COMMENT_WITH_NL and token_type == tokenize.COMMENT: - if len(self.tokens) == 1: - # The comment also ends a physical line - token = list(token) - token[1] = text.rstrip('\r\n') - token[3] = (token[2][0], token[2][1] + len(token[1])) - self.tokens = [tuple(token)] - self.check_logical() if self.tokens: self.check_physical(self.lines[-1]) self.check_logical() @@ -2079,8 +2147,8 @@ def get_count(self, prefix=''): """Return the total count of errors and warnings.""" - return sum([self.counters[key] - for key in self.messages if key.startswith(prefix)]) + return sum(self.counters[key] + for key in self.messages if key.startswith(prefix)) def get_statistics(self, prefix=''): """Get statistics for message codes that start with the prefix. @@ -2109,7 +2177,7 @@ class FileReport(BaseReport): - """Collect the results of the checks and print only the filenames.""" + """Collect the results of the checks and print the filenames.""" print_filename = True @@ -2141,7 +2209,7 @@ return code def get_file_results(self): - """Print the result and return the overall count for this file.""" + """Print results and return the overall count for this file.""" self._deferred_print.sort() for line_number, offset, code, text, doc in self._deferred_print: print(self._fmt % { @@ -2160,8 +2228,8 @@ print(' ' + doc.strip()) # stdout is block buffered when not stdout.isatty(). - # line can be broken where buffer boundary since other processes - # write to same file. + # line can be broken where buffer boundary since other + # processes write to same file. # flush() after print() to avoid buffer boundary. # Typical buffer size is 8192. line written safely when # len(line) < 8192. @@ -2279,7 +2347,7 @@ def excluded(self, filename, parent=None): """Check if the file should be excluded. - Check if 'options.exclude' contains a pattern that matches filename. + Check if 'options.exclude' contains a pattern matching filename. """ if not self.options.exclude: return False @@ -2307,8 +2375,8 @@ def get_checks(self, argument_name): """Get all the checks for this category. - Find all globally visible functions where the first argument name - starts with argument_name and which contain selected tests. + Find all globally visible functions where the first argument + name starts with argument_name and which contain selected tests. """ checks = [] for check, attrs in _checks[argument_name].items(): @@ -2324,8 +2392,8 @@ usage="%prog [options] input ...") parser.config_options = [ 'exclude', 'filename', 'select', 'ignore', 'max-line-length', - 'hang-closing', 'count', 'format', 'quiet', 'show-pep8', - 'show-source', 'statistics', 'verbose'] + 'max-doc-length', 'hang-closing', 'count', 'format', 'quiet', + 'show-pep8', 'show-source', 'statistics', 'verbose'] parser.add_option('-v', '--verbose', default=0, action='count', help="print status messages, or debug with -vv") parser.add_option('-q', '--quiet', default=0, action='count', @@ -2361,6 +2429,10 @@ default=MAX_LINE_LENGTH, help="set maximum allowed line length " "(default: %default)") + parser.add_option('--max-doc-length', type='int', metavar='n', + default=None, + help="set maximum allowed doc line length and perform " + "these checks (unchecked if not set)") parser.add_option('--hang-closing', action='store_true', help="hang closing bracket instead of matching " "indentation of opening bracket's line") @@ -2383,12 +2455,13 @@ def read_config(options, args, arglist, parser): """Read and parse configurations. - If a config file is specified on the command line with the "--config" - option, then only it is used for configuration. + If a config file is specified on the command line with the + "--config" option, then only it is used for configuration. - Otherwise, the user configuration (~/.config/pycodestyle) and any local - configurations in the current directory or above will be merged together - (in that order) using the read method of ConfigParser. + Otherwise, the user configuration (~/.config/pycodestyle) and any + local configurations in the current directory or above will be + merged together (in that order) using the read method of + ConfigParser. """ config = RawConfigParser() @@ -2423,8 +2496,7 @@ warnings.warn('[pep8] section is deprecated. Use [pycodestyle].') if pycodestyle_section: - option_list = dict([(o.dest, o.type or o.action) - for o in parser.option_list]) + option_list = {o.dest: o.type or o.action for o in parser.option_list} # First, read the default values (new_options, __) = parser.parse_args([]) @@ -2457,10 +2529,10 @@ def process_options(arglist=None, parse_argv=False, config_file=None, parser=None, verbose=None): - """Process options passed either via arglist or via command line args. + """Process options passed either via arglist or command line args. - Passing in the ``config_file`` parameter allows other tools, such as flake8 - to specify their own options to be processed in pycodestyle. + Passing in the ``config_file`` parameter allows other tools, such as + flake8 to specify their own options to be processed in pycodestyle. """ if not parser: parser = get_parser() @@ -2480,7 +2552,7 @@ (options, args) = parser.parse_args(arglist) options.reporter = None - # If explicity specified verbosity, override any `-v` CLI flag + # If explicitly specified verbosity, override any `-v` CLI flag if verbose is not None: options.verbose = verbose diff -Nru pycharm-2018.3.5/helpers/pydev/MANIFEST.in pycharm-2019.1/helpers/pydev/MANIFEST.in --- pycharm-2018.3.5/helpers/pydev/MANIFEST.in 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/MANIFEST.in 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,4 @@ +include *.rst *.txt *.md LICENSE VERSION *.pyx +recursive-include pydevd_attach_to_process *.py *.dll *.so *.dylib *.txt *.c *.h *.bat Makefile *.sh *.pyx +recursive-include _pydevd_bundle *.pyx +recursive-include build_tools *.py \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/_pydev_bundle/pydev_ipython_console_011.py pycharm-2019.1/helpers/pydev/_pydev_bundle/pydev_ipython_console_011.py --- pycharm-2018.3.5/helpers/pydev/_pydev_bundle/pydev_ipython_console_011.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydev_bundle/pydev_ipython_console_011.py 2019-03-19 14:23:58.000000000 +0000 @@ -34,7 +34,7 @@ from IPython.core import release from _pydev_bundle.pydev_imports import xmlrpclib -from _pydevd_bundle.pydevd_constants import dict_keys +from _pydevd_bundle.pydevd_constants import dict_keys, dict_iter_items default_pydev_banner_parts = default_banner_parts @@ -475,4 +475,25 @@ return _PyDevFrontEndContainer._instance - + +def get_ipython_hidden_vars(ipython_shell): + try: + if hasattr(ipython_shell, 'user_ns_hidden'): + user_ns_hidden = ipython_shell.user_ns_hidden + if isinstance(user_ns_hidden, dict): + # Since IPython 2 dict `user_ns_hidden` contains hidden variables and values + user_hidden_dict = user_ns_hidden.copy() + else: + # In IPython 1.x `user_ns_hidden` used to be a set with names of hidden variables + user_hidden_dict = dict([(key, val) for key, val in dict_iter_items(ipython_shell.user_ns) + if key in user_ns_hidden]) + + # while `_`, `__` and `___` were not initialized, they are not presented in `user_ns_hidden` + user_hidden_dict.setdefault('_', '') + user_hidden_dict.setdefault('__', '') + user_hidden_dict.setdefault('___', '') + + return user_hidden_dict + except: + # Getting IPython variables shouldn't break loading frame variables + traceback.print_exc() diff -Nru pycharm-2018.3.5/helpers/pydev/_pydev_bundle/pydev_ipython_console.py pycharm-2019.1/helpers/pydev/_pydev_bundle/pydev_ipython_console.py --- pycharm-2018.3.5/helpers/pydev/_pydev_bundle/pydev_ipython_console.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydev_bundle/pydev_ipython_console.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,10 +1,7 @@ -import traceback - import sys from _pydev_bundle.pydev_console_utils import BaseInterpreterInterface from _pydev_bundle.pydev_ipython_console_011 import get_pydev_frontend -from _pydevd_bundle.pydevd_constants import dict_iter_items - +from _pydev_bundle.pydev_ipython_console_011 import get_ipython_hidden_vars # Uncomment to force PyDev standard shell. # raise ImportError() @@ -66,23 +63,6 @@ self.notification_succeeded = False def get_ipython_hidden_vars_dict(self): - try: - if hasattr(self.interpreter, 'ipython') and hasattr(self.interpreter.ipython, 'user_ns_hidden'): - user_ns_hidden = self.interpreter.ipython.user_ns_hidden - if isinstance(user_ns_hidden, dict): - # Since IPython 2 dict `user_ns_hidden` contains hidden variables and values - user_hidden_dict = user_ns_hidden.copy() - else: - # In IPython 1.x `user_ns_hidden` used to be a set with names of hidden variables - user_hidden_dict = dict([(key, val) for key, val in dict_iter_items(self.interpreter.ipython.user_ns) - if key in user_ns_hidden]) - - # while `_`, `__` and `___` were not initialized, they are not presented in `user_ns_hidden` - user_hidden_dict.setdefault('_', '') - user_hidden_dict.setdefault('__', '') - user_hidden_dict.setdefault('___', '') - - return user_hidden_dict - except: - # Getting IPython variables shouldn't break loading frame variables - traceback.print_exc() + if hasattr(self.interpreter, 'ipython') and hasattr(self.interpreter.ipython, 'user_ns_hidden'): + ipython_shell = self.interpreter.ipython + return get_ipython_hidden_vars(ipython_shell) diff -Nru pycharm-2018.3.5/helpers/pydev/_pydev_bundle/pydev_monkey_qt.py pycharm-2019.1/helpers/pydev/_pydev_bundle/pydev_monkey_qt.py --- pycharm-2018.3.5/helpers/pydev/_pydev_bundle/pydev_monkey_qt.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydev_bundle/pydev_monkey_qt.py 2019-03-19 14:23:58.000000000 +0000 @@ -35,21 +35,31 @@ patch_qt_on_import = None try: - import PySide # @UnresolvedImport @UnusedImport - qt_support_mode = 'pyside' + import PySide2 # @UnresolvedImport @UnusedImport + qt_support_mode = 'pyside2' except: try: - import PyQt5 # @UnresolvedImport @UnusedImport - qt_support_mode = 'pyqt5' + import Pyside # @UnresolvedImport @UnusedImport + qt_support_mode = 'pyside' except: try: - import PyQt4 # @UnresolvedImport @UnusedImport - qt_support_mode = 'pyqt4' + import PyQt5 # @UnresolvedImport @UnusedImport + qt_support_mode = 'pyqt5' except: - return + try: + import PyQt4 # @UnresolvedImport @UnusedImport + qt_support_mode = 'pyqt4' + except: + return + if qt_support_mode == 'pyside2': + try: + import PySide2.QtCore # @UnresolvedImport + _internal_patch_qt(PySide2.QtCore, qt_support_mode) + except: + return - if qt_support_mode == 'pyside': + elif qt_support_mode == 'pyside': try: import PySide.QtCore # @UnresolvedImport _internal_patch_qt(PySide.QtCore, qt_support_mode) @@ -134,14 +144,14 @@ QtCore.QObject.__init__(self) self.thread = thread self.original_started = original_started - if qt_support_mode == 'pyside': + if qt_support_mode in ('pyside', 'pyside2'): self._signal = original_started else: self._signal.connect(self._on_call) self.original_started.connect(self._signal) def connect(self, func, *args, **kwargs): - if qt_support_mode == 'pyside': + if qt_support_mode in ('pyside', 'pyside2'): return self._signal.connect(FuncWrapper(func), *args, **kwargs) else: return self._signal.connect(func, *args, **kwargs) diff -Nru pycharm-2018.3.5/helpers/pydev/pydevconsole.py pycharm-2019.1/helpers/pydev/pydevconsole.py --- pycharm-2018.3.5/helpers/pydev/pydevconsole.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevconsole.py 2019-03-19 14:23:58.000000000 +0000 @@ -327,6 +327,19 @@ process_exec_queue(interpreter) +def get_ipython_hidden_vars(): + if IPYTHON and hasattr(__builtin__, 'interpreter'): + interpreter = get_interpreter() + return interpreter.get_ipython_hidden_vars_dict() + else: + try: + ipython_shell = get_ipython() + from _pydev_bundle.pydev_ipython_console_011 import get_ipython_hidden_vars + return get_ipython_hidden_vars(ipython_shell) + except: + pass + + def get_interpreter(): try: interpreterInterface = getattr(__builtin__, 'interpreter') diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/add_code_to_python_process.py pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/add_code_to_python_process.py --- pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/add_code_to_python_process.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/add_code_to_python_process.py 2019-03-19 14:23:58.000000000 +0000 @@ -455,7 +455,7 @@ cmd.extend([ "--eval-command='call dlopen(\"%s\", 2)'" % target_dll, - "--eval-command='call DoAttach(%s, \"%s\", %s)'" % ( + "--eval-command='call (int)DoAttach(%s, \"%s\", %s)'" % ( is_debug, python_code, show_debug_info) ]) diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/attach_pydevd.py pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/attach_pydevd.py --- pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/attach_pydevd.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/attach_pydevd.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,5 +1,8 @@ +from __future__ import print_function import sys import os +import subprocess +import traceback def process_command_line(argv): setup = {} @@ -31,6 +34,17 @@ return setup def main(setup): + if sys.platform == 'linux': + try: + output = subprocess.check_output(['sysctl', 'kernel.yama.ptrace_scope']) + if output.decode().strip()[-1] != '0': + print("WARNING: The 'kernel.yama.ptrace_scope' parameter value is not 0, attach to process may not work correctly.\n" + " Please run 'sudo sysctl kernel.yama.ptrace_scope=0' to change the value temporary\n" + " or add the 'kernel.yama.ptrace_scope = 0' line to /etc/sysctl.d/10-ptrace.conf to set it permanently.", + file=sys.stderr) + except Exception: + traceback.print_exc() + import add_code_to_python_process show_debug_info_on_target_process = 0 diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/_check.py pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/_check.py --- pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/_check.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/_check.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,2 +1,2 @@ import add_code_to_python_process -print add_code_to_python_process.run_python_code(3736, "print(20)", connect_debugger_tracing=False) \ No newline at end of file +print(add_code_to_python_process.run_python_code(3736, "print(20)", connect_debugger_tracing=False)) \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/linux/gdb_threads_settrace.py pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/linux/gdb_threads_settrace.py --- pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/linux/gdb_threads_settrace.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/linux/gdb_threads_settrace.py 2019-03-19 14:23:58.000000000 +0000 @@ -10,7 +10,7 @@ t.switch() if t.is_stopped(): #print('Will settrace in: %s' % (t,)) - gdb.execute("call SetSysTraceFunc(%s, %s)" % ( + gdb.execute("call (int)SetSysTraceFunc(%s, %s)" % ( show_debug_info, is_debug)) except: import traceback;traceback.print_exc() diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/_test_attach_to_process_linux.py pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/_test_attach_to_process_linux.py --- pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/_test_attach_to_process_linux.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/_test_attach_to_process_linux.py 2019-03-19 14:23:58.000000000 +0000 @@ -58,8 +58,8 @@ cmd.extend([ "--eval-command='call dlopen(\"/home/fabioz/Desktop/dev/PyDev.Debugger/pydevd_attach_to_process/linux/attach_linux.so\", 2)'", - "--eval-command='call DoAttach(1, \"print(\\\"check11111check\\\")\", 0)'", - #"--eval-command='call SetSysTraceFunc(1, 0)'", -- never call this way, always use "--command='...gdb_threads_settrace.py'", + "--eval-command='call (int)DoAttach(1, \"print(\\\"check11111check\\\")\", 0)'", + #"--eval-command='call (int)SetSysTraceFunc(1, 0)'", -- never call this way, always use "--command='...gdb_threads_settrace.py'", #So that threads are all stopped! "--command='/home/fabioz/Desktop/dev/PyDev.Debugger/pydevd_attach_to_process/linux/gdb_threads_settrace.py'", ]) diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_example.py pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_example.py --- pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_example.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_example.py 2019-03-19 14:23:58.000000000 +0000 @@ -34,8 +34,8 @@ def do(self, arg): ".example - This is an example plugin for the command line debugger" - print "This is an example command." - print "%s.do(%r, %r):" % (__name__, self, arg) - print " last event", self.lastEvent - print " prefix", self.cmdprefix - print " arguments", self.split_tokens(arg) + print("This is an example command.") + print("%s.do(%r, %r):" % (__name__, self, arg)) + print(" last event", self.lastEvent) + print(" prefix", self.cmdprefix) + print(" arguments", self.split_tokens(arg)) diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_exchain.py pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_exchain.py --- pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_exchain.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_exchain.py 2019-03-19 14:23:58.000000000 +0000 @@ -37,8 +37,7 @@ def do(self, arg): ".exchain - Show the SEH chain" thread = self.get_thread_from_prefix() - print "Exception handlers for thread %d" % thread.get_tid() - print + print("Exception handlers for thread %d" % thread.get_tid()) table = Table() table.addRow("Block", "Function") bits = thread.get_bits() @@ -48,4 +47,4 @@ if seh_func is not None: seh_func = HexDump.address(seh_func, bits) table.addRow(seh, seh_func) - print table.getOutput() + print(table.getOutput()) diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_exploitable.py pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_exploitable.py --- pycharm-2018.3.5/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_exploitable.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_attach_to_process/winappdbg/plugins/do_exploitable.py 2019-03-19 14:23:58.000000000 +0000 @@ -43,8 +43,8 @@ status, rule, description = crash.isExploitable() - print "-" * 79 - print "Exploitability: %s" % status - print "Matched rule: %s" % rule - print "Description: %s" % description - print "-" * 79 + print("-" * 79) + print("Exploitability: %s" % status) + print("Matched rule: %s" % rule) + print("Description: %s" % description) + print("-" * 79) diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevconsole_code_for_ironpython.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevconsole_code_for_ironpython.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevconsole_code_for_ironpython.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevconsole_code_for_ironpython.py 2019-03-19 14:23:58.000000000 +0000 @@ -102,23 +102,23 @@ try: code = compiler(source, filename, symbol) - except SyntaxError, err: + except SyntaxError: pass try: code1 = compiler(source + "\n", filename, symbol) - except SyntaxError, err1: + except SyntaxError as err1: pass try: code2 = compiler(source + "\n\n", filename, symbol) - except SyntaxError, err2: + except SyntaxError as err2: pass if code: return code if not code1 and repr(err1) == repr(err2): - raise SyntaxError, err1 + raise SyntaxError(err1) def _compile(source, filename, symbol): return compile(source, filename, symbol, PyCF_DONT_IMPLY_DEDENT) diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_additional_thread_info_regular.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_additional_thread_info_regular.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_additional_thread_info_regular.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_additional_thread_info_regular.py 2019-03-19 14:23:58.000000000 +0000 @@ -7,7 +7,7 @@ from _pydevd_bundle.pydevd_frame import PyDBFrame # ENDIF -version = 12 +version = 15 if not hasattr(sys, '_current_frames'): @@ -39,10 +39,10 @@ ret[thread.getId()] = frame return ret - - elif IS_IRONPYTHON: + + elif IS_IRONPYTHON: _tid_to_last_frame = {} - + # IronPython doesn't have it. Let's use our workaround... def _current_frames(): return _tid_to_last_frame diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_command_line_handling.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_command_line_handling.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_command_line_handling.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_command_line_handling.py 2019-03-19 14:23:58.000000000 +0000 @@ -111,13 +111,13 @@ # The --qt-support is special because we want to keep backward compatibility: # Previously, just passing '--qt-support' meant that we should use the auto-discovery mode # whereas now, if --qt-support is passed, it should be passed as --qt-support=, where - # mode can be one of 'auto', 'none', 'pyqt5', 'pyqt4', 'pyside'. + # mode can be one of 'auto', 'none', 'pyqt5', 'pyqt4', 'pyside', 'pyside2'. if argv[i] == '--qt-support': setup['qt-support'] = 'auto' elif argv[i].startswith('--qt-support='): qt_support = argv[i][len('--qt-support='):] - valid_modes = ('none', 'auto', 'pyqt5', 'pyqt4', 'pyside') + valid_modes = ('none', 'auto', 'pyqt5', 'pyqt4', 'pyside', 'pyside2') if qt_support not in valid_modes: raise ValueError("qt-support mode invalid: " + qt_support) if qt_support == 'none': diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_comm.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_comm.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_comm.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_comm.py 2019-03-19 14:23:58.000000000 +0000 @@ -82,7 +82,8 @@ from _pydevd_bundle import pydevd_xml from _pydevd_bundle import pydevd_tracing from _pydevd_bundle import pydevd_vm_type -from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, norm_file_to_client +from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, norm_file_to_client, is_real_file +import os import sys import traceback from _pydevd_bundle.pydevd_utils import quote_smart as quote, compare_object_attrs_key, to_string @@ -233,7 +234,7 @@ MAX_IO_MSG_SIZE = 1000 #if the io is too big, we'll not send all (could make the debugger too non-responsive) #this number can be changed if there's need to do so -VERSION_STRING = "@@BUILD_NUMBER@@" +VERSION_STRING = "191.6183.50" from _pydev_bundle._pydev_filesystem_encoding import getfilesystemencoding file_system_encoding = getfilesystemencoding() @@ -619,9 +620,10 @@ cmdText = '' return NetCommand(CMD_PROCESS_CREATED, 0, cmdText) - def make_show_cython_warning_message(self): + def make_show_warning_message(self, message_id): try: - return NetCommand(CMD_SHOW_CYTHON_WARNING, 0, '') + cmdText = '' % message_id + return NetCommand(CMD_SHOW_CYTHON_WARNING, 0, cmdText) except: return self.make_error_message(0, get_exception_traceback_str()) @@ -718,14 +720,19 @@ abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(curr_frame) - myFile = norm_file_to_client(abs_path_real_path_and_base[0]) - if file_system_encoding.lower() != "utf-8" and hasattr(myFile, "decode"): - # myFile is a byte string encoded using the file system encoding + my_file = abs_path_real_path_and_base[0] + + if is_real_file(my_file): + # if filename is Jupyter cell id + my_file = norm_file_to_client(abs_path_real_path_and_base[0]) + + if file_system_encoding.lower() != "utf-8" and hasattr(my_file, "decode"): + # my_file is a byte string encoded using the file system encoding # convert it to utf8 - myFile = myFile.decode(file_system_encoding).encode("utf-8") + my_file = my_file.decode(file_system_encoding).encode("utf-8") - #print "file is ", myFile - #myFile = inspect.getsourcefile(curr_frame) or inspect.getfile(frame) + #print "file is ", my_file + #my_file = inspect.getsourcefile(curr_frame) or inspect.getfile(frame) myLine = str(curr_frame.f_lineno) #print "line is ", myLine @@ -735,7 +742,7 @@ variables = '' append('' % (quote(myFile, '/>_= \t'), myLine)) + append('file="%s" line="%s">' % (quote(my_file, '/>_= \t'), myLine)) append(variables) append("") curr_frame = curr_frame.f_back diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_console_integration.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_console_integration.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_console_integration.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_console_integration.py 2019-03-19 14:23:58.000000000 +0000 @@ -65,6 +65,14 @@ if IPYTHON and hasattr(__builtin__, 'interpreter'): code_executor = get_code_executor() return code_executor.get_ipython_hidden_vars_dict() + else: + try: + ipython_shell = get_ipython() + from _pydev_bundle.pydev_ipython_console_011 import get_ipython_hidden_vars + return get_ipython_hidden_vars(ipython_shell) + except: + pass + def get_code_executor(): try: diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_constants.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_constants.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_constants.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_constants.py 2019-03-19 14:23:58.000000000 +0000 @@ -9,6 +9,7 @@ PYTHON_SUSPEND = 1 DJANGO_SUSPEND = 2 JINJA2_SUSPEND = 3 +JUPYTER_SUSPEND = 4 class DebugInfoHolder: diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython.c pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython.c --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython.c 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython.c 2019-03-19 14:23:58.000000000 +0000 @@ -1,4 +1,4 @@ -/* Generated by Cython 0.27.3 */ +/* Generated by Cython 0.28.5 */ /* BEGIN: Cython Metadata { @@ -20,7 +20,7 @@ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else -#define CYTHON_ABI "0_27_3" +#define CYTHON_ABI "0_28_5" #define CYTHON_FUTURE_DIVISION 0 #include #ifndef offsetof @@ -196,6 +196,103 @@ #undef BASE #undef MASK #endif +#ifndef __has_attribute + #define __has_attribute(x) 0 +#endif +#ifndef __has_cpp_attribute + #define __has_cpp_attribute(x) 0 +#endif +#ifndef CYTHON_RESTRICT + #if defined(__GNUC__) + #define CYTHON_RESTRICT __restrict__ + #elif defined(_MSC_VER) && _MSC_VER >= 1400 + #define CYTHON_RESTRICT __restrict + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_RESTRICT restrict + #else + #define CYTHON_RESTRICT + #endif +#endif +#ifndef CYTHON_UNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +#endif +#ifndef CYTHON_MAYBE_UNUSED_VAR +# if defined(__cplusplus) + template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } +# else +# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) +# endif +#endif +#ifndef CYTHON_NCP_UNUSED +# if CYTHON_COMPILING_IN_CPYTHON +# define CYTHON_NCP_UNUSED +# else +# define CYTHON_NCP_UNUSED CYTHON_UNUSED +# endif +#endif +#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) +#ifdef _MSC_VER + #ifndef _MSC_STDINT_H_ + #if _MSC_VER < 1300 + typedef unsigned char uint8_t; + typedef unsigned int uint32_t; + #else + typedef unsigned __int8 uint8_t; + typedef unsigned __int32 uint32_t; + #endif + #endif +#else + #include +#endif +#ifndef CYTHON_FALLTHROUGH + #if defined(__cplusplus) && __cplusplus >= 201103L + #if __has_cpp_attribute(fallthrough) + #define CYTHON_FALLTHROUGH [[fallthrough]] + #elif __has_cpp_attribute(clang::fallthrough) + #define CYTHON_FALLTHROUGH [[clang::fallthrough]] + #elif __has_cpp_attribute(gnu::fallthrough) + #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] + #endif + #endif + #ifndef CYTHON_FALLTHROUGH + #if __has_attribute(fallthrough) + #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) + #else + #define CYTHON_FALLTHROUGH + #endif + #endif + #if defined(__clang__ ) && defined(__apple_build_version__) + #if __apple_build_version__ < 7000000 + #undef CYTHON_FALLTHROUGH + #define CYTHON_FALLTHROUGH + #endif + #endif +#endif + +#ifndef CYTHON_INLINE + #if defined(__clang__) + #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) + #elif defined(__GNUC__) + #define CYTHON_INLINE __inline__ + #elif defined(_MSC_VER) + #define CYTHON_INLINE __inline + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_INLINE inline + #else + #define CYTHON_INLINE + #endif +#endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) #define Py_OptimizeFlag 0 #endif @@ -224,12 +321,12 @@ #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif -#if PY_VERSION_HEX < 0x030700A0 || !defined(METH_FASTCALL) +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject **args, Py_ssize_t nargs); - typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject **args, + typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); + typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); #else #define __Pyx_PyCFunctionFast _PyCFunctionFast @@ -241,6 +338,18 @@ #else #define __Pyx_PyFastCFunction_Check(func) 0 #endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) + #define PyObject_Malloc(s) PyMem_Malloc(s) + #define PyObject_Free(p) PyMem_Free(p) + #define PyObject_Realloc(p) PyMem_Realloc(p) +#endif +#if CYTHON_COMPILING_IN_PYSTON + #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) +#else + #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) +#endif #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #elif PY_VERSION_HEX >= 0x03060000 @@ -250,6 +359,36 @@ #else #define __Pyx_PyThreadState_Current _PyThreadState_Current #endif +#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) +#include "pythread.h" +#define Py_tss_NEEDS_INIT 0 +typedef int Py_tss_t; +static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { + *key = PyThread_create_key(); + return 0; // PyThread_create_key reports success always +} +static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { + Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); + *key = Py_tss_NEEDS_INIT; + return key; +} +static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { + PyObject_Free(key); +} +static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { + return *key != Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { + PyThread_delete_key(*key); + *key = Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { + return PyThread_set_key_value(*key, value); +} +static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { + return PyThread_get_key_value(*key); +} +#endif // TSS (Thread Specific Storage) API #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else @@ -262,6 +401,11 @@ #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS +#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) +#else +#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) +#endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ @@ -306,18 +450,6 @@ #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) - #define PyObject_Malloc(s) PyMem_Malloc(s) - #define PyObject_Free(p) PyMem_Free(p) - #define PyObject_Realloc(p) PyMem_Realloc(p) -#endif -#if CYTHON_COMPILING_IN_PYSTON - #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) -#else - #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) -#endif #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 @@ -334,6 +466,7 @@ #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact + #define PyObject_Unicode PyObject_Str #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) @@ -345,7 +478,11 @@ #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) +#if CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) +#else + #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) +#endif #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type @@ -380,16 +517,10 @@ #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func)) + #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) #else #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) #endif -#ifndef __has_attribute - #define __has_attribute(x) 0 -#endif -#ifndef __has_cpp_attribute - #define __has_cpp_attribute(x) 0 -#endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods @@ -407,96 +538,6 @@ unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #endif -#ifndef CYTHON_RESTRICT - #if defined(__GNUC__) - #define CYTHON_RESTRICT __restrict__ - #elif defined(_MSC_VER) && _MSC_VER >= 1400 - #define CYTHON_RESTRICT __restrict - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_RESTRICT restrict - #else - #define CYTHON_RESTRICT - #endif -#endif -#ifndef CYTHON_UNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -#endif -#ifndef CYTHON_MAYBE_UNUSED_VAR -# if defined(__cplusplus) - template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } -# else -# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) -# endif -#endif -#ifndef CYTHON_NCP_UNUSED -# if CYTHON_COMPILING_IN_CPYTHON -# define CYTHON_NCP_UNUSED -# else -# define CYTHON_NCP_UNUSED CYTHON_UNUSED -# endif -#endif -#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) -#ifdef _MSC_VER - #ifndef _MSC_STDINT_H_ - #if _MSC_VER < 1300 - typedef unsigned char uint8_t; - typedef unsigned int uint32_t; - #else - typedef unsigned __int8 uint8_t; - typedef unsigned __int32 uint32_t; - #endif - #endif -#else - #include -#endif -#ifndef CYTHON_FALLTHROUGH - #if defined(__cplusplus) && __cplusplus >= 201103L - #if __has_cpp_attribute(fallthrough) - #define CYTHON_FALLTHROUGH [[fallthrough]] - #elif __has_cpp_attribute(clang::fallthrough) - #define CYTHON_FALLTHROUGH [[clang::fallthrough]] - #elif __has_cpp_attribute(gnu::fallthrough) - #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] - #endif - #endif - #ifndef CYTHON_FALLTHROUGH - #if __has_attribute(fallthrough) - #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) - #else - #define CYTHON_FALLTHROUGH - #endif - #endif - #if defined(__clang__ ) && defined(__apple_build_version__) - #if __apple_build_version__ < 7000000 - #undef CYTHON_FALLTHROUGH - #define CYTHON_FALLTHROUGH - #endif - #endif -#endif - -#ifndef CYTHON_INLINE - #if defined(__clang__) - #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) - #elif defined(__GNUC__) - #define CYTHON_INLINE __inline__ - #elif defined(_MSC_VER) - #define CYTHON_INLINE __inline - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_INLINE inline - #else - #define CYTHON_INLINE - #endif -#endif #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES @@ -533,6 +574,7 @@ #define __PYX_HAVE___pydevd_bundle__pydevd_cython #define __PYX_HAVE_API___pydevd_bundle__pydevd_cython +/* Early includes */ #include #include #ifdef _OPENMP @@ -619,7 +661,7 @@ #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -#define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False)) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ @@ -727,7 +769,7 @@ static PyObject *__pyx_m = NULL; static PyObject *__pyx_d; static PyObject *__pyx_b; -static PyObject *__pyx_cython_runtime; +static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; @@ -790,7 +832,7 @@ }; -/* "_pydevd_bundle/pydevd_cython.pyx":960 +/* "_pydevd_bundle/pydevd_cython.pyx":971 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cdef class SafeCallWrapper: # <<<<<<<<<<<<<< @@ -803,7 +845,7 @@ }; -/* "_pydevd_bundle/pydevd_cython.pyx":972 +/* "_pydevd_bundle/pydevd_cython.pyx":983 * Py_XDECREF (method_obj) * return SafeCallWrapper(ret) if ret is not None else None * cdef class ThreadTracer: # <<<<<<<<<<<<<< @@ -896,16 +938,7 @@ /* PyObjectGetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_getattro)) - return tp->tp_getattro(obj, attr_name); -#if PY_MAJOR_VERSION < 3 - if (likely(tp->tp_getattr)) - return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); -#endif - return PyObject_GetAttr(obj, attr_name); -} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif @@ -1075,17 +1108,8 @@ /* PyObjectSetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS -#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o,n,NULL) -static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_setattro)) - return tp->tp_setattro(obj, attr_name, value); -#if PY_MAJOR_VERSION < 3 - if (likely(tp->tp_setattr)) - return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value); -#endif - return PyObject_SetAttr(obj, attr_name, value); -} +#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) +static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value); #else #define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n) #define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) @@ -1160,7 +1184,6 @@ /* CythonFunction.proto */ #define __Pyx_CyFunction_USED 1 -#include #define __Pyx_CYFUNCTION_STATICMETHOD 0x01 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 #define __Pyx_CYFUNCTION_CCLASS 0x04 @@ -1212,6 +1235,13 @@ PyObject *dict); static int __pyx_CyFunction_init(void); +/* ObjectGetItem.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key); +#else +#define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) +#endif + /* RaiseNoneIterError.proto */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); @@ -1226,11 +1256,36 @@ /* dict_getitem_default.proto */ static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value); -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); +/* UnpackUnboundCMethod.proto */ +typedef struct { + PyObject *type; + PyObject **method_name; + PyCFunction func; + PyObject *method; + int flag; +} __Pyx_CachedCFunction; -/* PyDictContains.proto */ -static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) { +/* CallUnboundCMethod1.proto */ +static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg); +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg); +#else +#define __Pyx_CallUnboundCMethod1(cfunc, self, arg) __Pyx__CallUnboundCMethod1(cfunc, self, arg) +#endif + +/* CallUnboundCMethod2.proto */ +static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2); +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1 +static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2); +#else +#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2) __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2) +#endif + +/* RaiseException.proto */ +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); + +/* PyDictContains.proto */ +static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) { int result = PyDict_Contains(dict, item); return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); } @@ -1249,12 +1304,39 @@ /* ImportFrom.proto */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); +/* PyObject_GenericGetAttrNoDict.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr +#endif + +/* PyObject_GenericGetAttr.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr +#endif + /* SetupReduce.proto */ static int __Pyx_setup_reduce(PyObject* type_obj); /* SetVTable.proto */ static int __Pyx_SetVtable(PyObject *dict, void *vtable); +/* FastTypeChecks.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); +#else +#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) +#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) +#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) +#endif +#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) + /* PatchModuleWithCoroutine.proto */ static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code); @@ -1299,18 +1381,6 @@ /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); -/* FastTypeChecks.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); -#else -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) -#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) -#endif - /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); @@ -1369,8 +1439,8 @@ static PyObject *__pyx_builtin_id; static PyObject *__pyx_builtin_StopIteration; static PyObject *__pyx_builtin_GeneratorExit; -static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_KeyboardInterrupt; +static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_AttributeError; static PyObject *__pyx_builtin_SystemExit; static const char __pyx_k_[] = ""; @@ -1465,6 +1535,7 @@ static const char __pyx_k_f_locals[] = "f_locals"; static const char __pyx_k_getValue[] = "getValue"; static const char __pyx_k_getstate[] = "__getstate__"; +static const char __pyx_k_python_s[] = "python-%s"; static const char __pyx_k_pyx_type[] = "__pyx_type"; static const char __pyx_k_quitting[] = "quitting"; static const char __pyx_k_setstate[] = "__setstate__"; @@ -1506,11 +1577,13 @@ static const char __pyx_k_breakpoints[] = "breakpoints"; static const char __pyx_k_co_filename[] = "co_filename"; static const char __pyx_k_just_raised[] = "just_raised"; +static const char __pyx_k_pydev_state[] = "pydev_state"; static const char __pyx_k_pydevd_vars[] = "pydevd_vars"; static const char __pyx_k_set_suspend[] = "set_suspend"; static const char __pyx_k_CO_GENERATOR[] = "CO_GENERATOR"; static const char __pyx_k_RuntimeError[] = "RuntimeError"; static const char __pyx_k_can_not_skip[] = "can_not_skip"; +static const char __pyx_k_is_real_file[] = "is_real_file"; static const char __pyx_k_not_in_scope[] = "not_in_scope"; static const char __pyx_k_pydev_bundle[] = "_pydev_bundle"; static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; @@ -1546,16 +1619,19 @@ static const char __pyx_k_current_frames[] = "_current_frames"; static const char __pyx_k_get_breakpoint[] = "get_breakpoint"; static const char __pyx_k_output_checker[] = "output_checker"; +static const char __pyx_k_pydev_step_cmd[] = "pydev_step_cmd"; static const char __pyx_k_suspend_policy[] = "suspend_policy"; static const char __pyx_k_trace_dispatch[] = "trace_dispatch"; static const char __pyx_k_CMD_RUN_TO_LINE[] = "CMD_RUN_TO_LINE"; static const char __pyx_k_CMD_STEP_RETURN[] = "CMD_STEP_RETURN"; static const char __pyx_k_IgnoreException[] = "[^#]*#.*@IgnoreException"; static const char __pyx_k_additional_info[] = "additional_info"; +static const char __pyx_k_clear_run_state[] = "clear_run_state"; static const char __pyx_k_do_wait_suspend[] = "do_wait_suspend"; static const char __pyx_k_exception_break[] = "exception_break"; static const char __pyx_k_is_thread_alive[] = "is_thread_alive"; static const char __pyx_k_org_python_core[] = "org.python.core"; +static const char __pyx_k_pydev_step_stop[] = "pydev_step_stop"; static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; static const char __pyx_k_thread_analyser[] = "thread_analyser"; @@ -1732,6 +1808,7 @@ static PyObject *__pyx_n_s_can_not_skip; static PyObject *__pyx_n_s_checkcache; static PyObject *__pyx_n_s_clear; +static PyObject *__pyx_n_s_clear_run_state; static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_s_cls_name; static PyObject *__pyx_n_s_cmd_step_into; @@ -1810,6 +1887,7 @@ static PyObject *__pyx_n_s_is_filter_enabled; static PyObject *__pyx_n_s_is_filter_libraries; static PyObject *__pyx_n_s_is_ignored_by_filters; +static PyObject *__pyx_n_s_is_real_file; static PyObject *__pyx_n_s_is_thread_alive; static PyObject *__pyx_n_s_java_lang; static PyObject *__pyx_n_s_join; @@ -1852,6 +1930,9 @@ static PyObject *__pyx_n_s_pydev_imps__pydev_saved_modules; static PyObject *__pyx_n_s_pydev_log; static PyObject *__pyx_n_s_pydev_message; +static PyObject *__pyx_n_s_pydev_state; +static PyObject *__pyx_n_s_pydev_step_cmd; +static PyObject *__pyx_n_s_pydev_step_stop; static PyObject *__pyx_n_s_pydevd_bundle; static PyObject *__pyx_n_s_pydevd_bundle_pydevd_additional; static PyObject *__pyx_n_s_pydevd_bundle_pydevd_breakpoint; @@ -1870,6 +1951,7 @@ static PyObject *__pyx_kp_s_pydevd_py; static PyObject *__pyx_kp_s_pydevd_traceproperty_py; static PyObject *__pyx_n_s_pydevd_vars; +static PyObject *__pyx_kp_s_python_s; static PyObject *__pyx_n_s_pyx_PickleError; static PyObject *__pyx_n_s_pyx_checksum; static PyObject *__pyx_n_s_pyx_result; @@ -2002,9 +2084,10 @@ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_14get_func_name(CYTHON_UNUSED struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v_frame); /* proto */ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_return_values_get_func_name(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frame); /* proto */ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_16manage_return_values(CYTHON_UNUSED struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v_main_debugger, PyObject *__pyx_v_frame, PyObject *__pyx_v_event, PyObject *__pyx_v_arg); /* proto */ -static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_18trace_dispatch(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v_frame, PyObject *__pyx_v_event, PyObject *__pyx_v_arg); /* proto */ -static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20__reduce_cython__(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_22__setstate_cython__(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_18clear_run_state(CYTHON_UNUSED struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v_info); /* proto */ +static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20trace_dispatch(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v_frame, PyObject *__pyx_v_event, PyObject *__pyx_v_arg); /* proto */ +static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_22__reduce_cython__(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_24__setstate_cython__(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_10trace_dispatch(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_py_db, PyObject *__pyx_v_frame, PyObject *__pyx_v_event, PyObject *__pyx_v_arg); /* proto */ static int __pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper___init__(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper *__pyx_v_self, PyObject *__pyx_v_method_object); /* proto */ static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_15SafeCallWrapper_2__call__(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper *__pyx_v_self, PyObject *__pyx_v_args); /* proto */ @@ -2026,9 +2109,10 @@ static PyObject *__pyx_tp_new_14_pydevd_bundle_13pydevd_cython_PyDBFrame(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_14_pydevd_bundle_13pydevd_cython_ThreadTracer(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_get = {0, &__pyx_n_s_get, 0, 0, 0}; static PyObject *__pyx_int_0; static PyObject *__pyx_int_1; -static PyObject *__pyx_int_12; +static PyObject *__pyx_int_15; static PyObject *__pyx_int_32; static PyObject *__pyx_int_64458794; static PyObject *__pyx_int_125568891; @@ -2068,6 +2152,7 @@ static PyObject *__pyx_codeobj__31; static PyObject *__pyx_codeobj__33; static PyObject *__pyx_codeobj__35; +/* Late includes */ /* "_pydevd_bundle/pydevd_cython.pyx":29 * thread_states = cachedThreadState.get(ThreadStateMapping) @@ -4747,23 +4832,23 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_py_db)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_py_db)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_info)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_info)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("handle_breakpoint_condition", 1, 4, 4, 1); __PYX_ERR(0, 169, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_breakpoint)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_breakpoint)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("handle_breakpoint_condition", 1, 4, 4, 2); __PYX_ERR(0, 169, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: - if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_new_frame)) != 0)) kw_args--; + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_new_frame)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("handle_breakpoint_condition", 1, 4, 4, 3); __PYX_ERR(0, 169, __pyx_L3_error) } @@ -5176,11 +5261,7 @@ __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) { PyObject* sequence = __pyx_t_7; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); @@ -5652,17 +5733,17 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_breakpoint)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_breakpoint)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_info)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_info)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("handle_breakpoint_expression", 1, 3, 3, 1); __PYX_ERR(0, 203, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_new_frame)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_new_frame)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("handle_breakpoint_expression", 1, 3, 3, 2); __PYX_ERR(0, 203, __pyx_L3_error) } @@ -5889,16 +5970,10 @@ * * */ - __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 211, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF(__pyx_v_val); - __Pyx_GIVEREF(__pyx_v_val); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_val); - __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_message, __pyx_t_5) < 0) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_message, __pyx_t_7) < 0) __PYX_ERR(0, 211, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":210 * val = sys.exc_info()[1] @@ -5944,14 +6019,8 @@ * */ if (unlikely(!__pyx_v_val)) { __Pyx_RaiseUnboundLocalError("val"); __PYX_ERR(0, 211, __pyx_L16_error) } - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 211, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_INCREF(__pyx_v_val); - __Pyx_GIVEREF(__pyx_v_val); - PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_val); - __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 211, __pyx_L16_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_val); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 211, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_message, __pyx_t_5) < 0) __PYX_ERR(0, 211, __pyx_L16_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -6050,7 +6119,7 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { @@ -6328,17 +6397,17 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("trace_exception", 1, 3, 3, 1); __PYX_ERR(0, 257, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("trace_exception", 1, 3, 3, 2); __PYX_ERR(0, 257, __pyx_L3_error) } @@ -6462,11 +6531,7 @@ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); @@ -6690,17 +6755,17 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("trace_return", 1, 3, 3, 1); __PYX_ERR(0, 271, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("trace_return", 1, 3, 3, 2); __PYX_ERR(0, 271, __pyx_L3_error) } @@ -6926,17 +6991,17 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("should_stop_on_exception", 1, 3, 3, 1); __PYX_ERR(0, 278, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("should_stop_on_exception", 1, 3, 3, 2); __PYX_ERR(0, 278, __pyx_L3_error) } @@ -6983,6 +7048,7 @@ PyObject *__pyx_v_value = NULL; PyObject *__pyx_v_trace = NULL; PyObject *__pyx_v_exception_breakpoint = NULL; + PyObject *__pyx_v_is_real = NULL; PyObject *__pyx_v_eval_result = NULL; PyObject *__pyx_v_result = NULL; PyObject *__pyx_r = NULL; @@ -7064,11 +7130,7 @@ */ if ((likely(PyTuple_CheckExact(__pyx_v_arg))) || (PyList_CheckExact(__pyx_v_arg))) { PyObject* sequence = __pyx_v_arg; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); @@ -7140,7 +7202,7 @@ * if trace is not None: #on jython trace is None on the first event * exception_breakpoint = get_exception_breakpoint( # <<<<<<<<<<<<<< * exception, main_debugger.break_on_caught_exceptions) - * + * is_real = is_real_file(frame.f_code.co_filename) */ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_exception_breakpoint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); @@ -7149,8 +7211,8 @@ * if trace is not None: #on jython trace is None on the first event * exception_breakpoint = get_exception_breakpoint( * exception, main_debugger.break_on_caught_exceptions) # <<<<<<<<<<<<<< + * is_real = is_real_file(frame.f_code.co_filename) * - * if exception_breakpoint is not None: */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_break_on_caught_exceptions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -7204,8 +7266,71 @@ __pyx_v_exception_breakpoint = __pyx_t_4; __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":298 + /* "_pydevd_bundle/pydevd_cython.pyx":297 + * exception_breakpoint = get_exception_breakpoint( * exception, main_debugger.break_on_caught_exceptions) + * is_real = is_real_file(frame.f_code.co_filename) # <<<<<<<<<<<<<< + * + * if exception_breakpoint is not None: + */ + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_is_real_file); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + if (!__pyx_t_9) { + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_GOTREF(__pyx_t_4); + } else { + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_1}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_1}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + { + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL; + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_is_real = __pyx_t_4; + __pyx_t_4 = 0; + + /* "_pydevd_bundle/pydevd_cython.pyx":299 + * is_real = is_real_file(frame.f_code.co_filename) * * if exception_breakpoint is not None: # <<<<<<<<<<<<<< * add_exception_to_frame(frame, (exception, value, trace)) @@ -7215,26 +7340,26 @@ __pyx_t_2 = (__pyx_t_7 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":299 + /* "_pydevd_bundle/pydevd_cython.pyx":300 * * if exception_breakpoint is not None: * add_exception_to_frame(frame, (exception, value, trace)) # <<<<<<<<<<<<<< * if exception_breakpoint.condition is not None: * eval_result = handle_breakpoint_condition(main_debugger, info, exception_breakpoint, frame) */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 299, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_exception); __Pyx_GIVEREF(__pyx_v_exception); - PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_exception); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_exception); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); - PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_value); __Pyx_INCREF(__pyx_v_trace); __Pyx_GIVEREF(__pyx_v_trace); - PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_trace); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_trace); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -7249,71 +7374,71 @@ } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_frame, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 299, __pyx_L1_error) + PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_frame, __pyx_t_5}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_frame, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 299, __pyx_L1_error) + PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_frame, __pyx_t_5}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_1) { - __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; + __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); - PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_frame); - __Pyx_GIVEREF(__pyx_t_9); - PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_t_9); - __pyx_t_9 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 299, __pyx_L1_error) + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_frame); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); + __pyx_t_5 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":300 + /* "_pydevd_bundle/pydevd_cython.pyx":301 * if exception_breakpoint is not None: * add_exception_to_frame(frame, (exception, value, trace)) * if exception_breakpoint.condition is not None: # <<<<<<<<<<<<<< * eval_result = handle_breakpoint_condition(main_debugger, info, exception_breakpoint, frame) * if not eval_result: */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 300, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = (__pyx_t_4 != Py_None); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = (__pyx_t_2 != 0); if (__pyx_t_7) { - /* "_pydevd_bundle/pydevd_cython.pyx":301 + /* "_pydevd_bundle/pydevd_cython.pyx":302 * add_exception_to_frame(frame, (exception, value, trace)) * if exception_breakpoint.condition is not None: * eval_result = handle_breakpoint_condition(main_debugger, info, exception_breakpoint, frame) # <<<<<<<<<<<<<< * if not eval_result: * return False, frame */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_handle_breakpoint_condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 301, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_handle_breakpoint_condition); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = NULL; + __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_5)) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; @@ -7321,58 +7446,58 @@ } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_main_debugger, ((PyObject *)__pyx_v_info), __pyx_v_exception_breakpoint, __pyx_v_frame}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 301, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_v_main_debugger, ((PyObject *)__pyx_v_info), __pyx_v_exception_breakpoint, __pyx_v_frame}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_main_debugger, ((PyObject *)__pyx_v_info), __pyx_v_exception_breakpoint, __pyx_v_frame}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 301, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_v_main_debugger, ((PyObject *)__pyx_v_info), __pyx_v_exception_breakpoint, __pyx_v_frame}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_9 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (__pyx_t_5) { - __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL; + __pyx_t_5 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_v_main_debugger); __Pyx_GIVEREF(__pyx_v_main_debugger); - PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_main_debugger); + PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_main_debugger); __Pyx_INCREF(((PyObject *)__pyx_v_info)); __Pyx_GIVEREF(((PyObject *)__pyx_v_info)); - PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, ((PyObject *)__pyx_v_info)); + PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, ((PyObject *)__pyx_v_info)); __Pyx_INCREF(__pyx_v_exception_breakpoint); __Pyx_GIVEREF(__pyx_v_exception_breakpoint); - PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_v_exception_breakpoint); + PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_v_exception_breakpoint); __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); - PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_frame); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 301, __pyx_L1_error) + PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_8, __pyx_v_frame); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_eval_result = __pyx_t_4; __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":302 + /* "_pydevd_bundle/pydevd_cython.pyx":303 * if exception_breakpoint.condition is not None: * eval_result = handle_breakpoint_condition(main_debugger, info, exception_breakpoint, frame) * if not eval_result: # <<<<<<<<<<<<<< * return False, frame * */ - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_eval_result); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 302, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_eval_result); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 303, __pyx_L1_error) __pyx_t_2 = ((!__pyx_t_7) != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":303 + /* "_pydevd_bundle/pydevd_cython.pyx":304 * eval_result = handle_breakpoint_condition(main_debugger, info, exception_breakpoint, frame) * if not eval_result: * return False, frame # <<<<<<<<<<<<<< @@ -7380,7 +7505,7 @@ * if exception_breakpoint.ignore_libraries: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 303, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); @@ -7392,7 +7517,7 @@ __pyx_t_4 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":302 + /* "_pydevd_bundle/pydevd_cython.pyx":303 * if exception_breakpoint.condition is not None: * eval_result = handle_breakpoint_condition(main_debugger, info, exception_breakpoint, frame) * if not eval_result: # <<<<<<<<<<<<<< @@ -7401,7 +7526,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":300 + /* "_pydevd_bundle/pydevd_cython.pyx":301 * if exception_breakpoint is not None: * add_exception_to_frame(frame, (exception, value, trace)) * if exception_breakpoint.condition is not None: # <<<<<<<<<<<<<< @@ -7410,115 +7535,115 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":305 + /* "_pydevd_bundle/pydevd_cython.pyx":306 * return False, frame * * if exception_breakpoint.ignore_libraries: # <<<<<<<<<<<<<< * if exception_breakpoint.notify_on_first_raise_only: * if main_debugger.first_appearance_in_scope(trace): */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_ignore_libraries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 305, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_ignore_libraries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 305, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 306, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":306 + /* "_pydevd_bundle/pydevd_cython.pyx":307 * * if exception_breakpoint.ignore_libraries: * if exception_breakpoint.notify_on_first_raise_only: # <<<<<<<<<<<<<< * if main_debugger.first_appearance_in_scope(trace): * add_exception_to_frame(frame, (exception, value, trace)) */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_notify_on_first_raise_only); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 306, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_notify_on_first_raise_only); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 306, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":307 + /* "_pydevd_bundle/pydevd_cython.pyx":308 * if exception_breakpoint.ignore_libraries: * if exception_breakpoint.notify_on_first_raise_only: * if main_debugger.first_appearance_in_scope(trace): # <<<<<<<<<<<<<< * add_exception_to_frame(frame, (exception, value, trace)) * try: */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_first_appearance_in_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 307, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_first_appearance_in_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = NULL; + __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_9)) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } - if (!__pyx_t_9) { - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_trace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error) + if (!__pyx_t_5) { + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_trace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_trace}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_trace}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_trace}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_trace}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL; + __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_trace); __Pyx_GIVEREF(__pyx_v_trace); - PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_trace); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error) + PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_trace); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 307, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 308, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":308 + /* "_pydevd_bundle/pydevd_cython.pyx":309 * if exception_breakpoint.notify_on_first_raise_only: * if main_debugger.first_appearance_in_scope(trace): * add_exception_to_frame(frame, (exception, value, trace)) # <<<<<<<<<<<<<< * try: * info.pydev_message = exception_breakpoint.qname */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 308, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_exception); __Pyx_GIVEREF(__pyx_v_exception); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_exception); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_exception); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); - PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_value); __Pyx_INCREF(__pyx_v_trace); __Pyx_GIVEREF(__pyx_v_trace); - PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_trace); - __pyx_t_9 = NULL; + PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_trace); + __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_9)) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; @@ -7526,42 +7651,42 @@ } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_frame, __pyx_t_5}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_frame, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_frame, __pyx_t_5}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_frame, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 308, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__pyx_t_9) { - __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9); __pyx_t_9 = NULL; + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_v_frame); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_t_9); + __pyx_t_9 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":309 + /* "_pydevd_bundle/pydevd_cython.pyx":310 * if main_debugger.first_appearance_in_scope(trace): * add_exception_to_frame(frame, (exception, value, trace)) * try: # <<<<<<<<<<<<<< @@ -7577,23 +7702,23 @@ __Pyx_XGOTREF(__pyx_t_12); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":310 + /* "_pydevd_bundle/pydevd_cython.pyx":311 * add_exception_to_frame(frame, (exception, value, trace)) * try: * info.pydev_message = exception_breakpoint.qname # <<<<<<<<<<<<<< * except: * info.pydev_message = exception_breakpoint.qname.encode('utf-8') */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L13_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 311, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_4); - if (!(likely(PyString_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 310, __pyx_L13_error) + if (!(likely(PyString_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 311, __pyx_L13_error) __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_info->pydev_message); __Pyx_DECREF(__pyx_v_info->pydev_message); __pyx_v_info->pydev_message = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":309 + /* "_pydevd_bundle/pydevd_cython.pyx":310 * if main_debugger.first_appearance_in_scope(trace): * add_exception_to_frame(frame, (exception, value, trace)) * try: # <<<<<<<<<<<<<< @@ -7606,13 +7731,13 @@ __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L18_try_end; __pyx_L13_error:; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":311 + /* "_pydevd_bundle/pydevd_cython.pyx":312 * try: * info.pydev_message = exception_breakpoint.qname * except: # <<<<<<<<<<<<<< @@ -7621,32 +7746,32 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.should_stop_on_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(0, 311, __pyx_L15_except_error) + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(0, 312, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_1); - /* "_pydevd_bundle/pydevd_cython.pyx":312 + /* "_pydevd_bundle/pydevd_cython.pyx":313 * info.pydev_message = exception_breakpoint.qname * except: * info.pydev_message = exception_breakpoint.qname.encode('utf-8') # <<<<<<<<<<<<<< * flag = True * else: */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 312, __pyx_L15_except_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_encode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 312, __pyx_L15_except_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 313, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 312, __pyx_L15_except_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 312, __pyx_L15_except_error) - __Pyx_GIVEREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 313, __pyx_L15_except_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (!(likely(PyString_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 313, __pyx_L15_except_error) + __Pyx_GIVEREF(__pyx_t_9); __Pyx_GOTREF(__pyx_v_info->pydev_message); __Pyx_DECREF(__pyx_v_info->pydev_message); - __pyx_v_info->pydev_message = ((PyObject*)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_v_info->pydev_message = ((PyObject*)__pyx_t_9); + __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -7654,7 +7779,7 @@ } __pyx_L15_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":309 + /* "_pydevd_bundle/pydevd_cython.pyx":310 * if main_debugger.first_appearance_in_scope(trace): * add_exception_to_frame(frame, (exception, value, trace)) * try: # <<<<<<<<<<<<<< @@ -7674,7 +7799,7 @@ __pyx_L18_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":313 + /* "_pydevd_bundle/pydevd_cython.pyx":314 * except: * info.pydev_message = exception_breakpoint.qname.encode('utf-8') * flag = True # <<<<<<<<<<<<<< @@ -7683,7 +7808,7 @@ */ __pyx_v_flag = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":307 + /* "_pydevd_bundle/pydevd_cython.pyx":308 * if exception_breakpoint.ignore_libraries: * if exception_breakpoint.notify_on_first_raise_only: * if main_debugger.first_appearance_in_scope(trace): # <<<<<<<<<<<<<< @@ -7693,7 +7818,7 @@ goto __pyx_L12; } - /* "_pydevd_bundle/pydevd_cython.pyx":315 + /* "_pydevd_bundle/pydevd_cython.pyx":316 * flag = True * else: * pydev_log.debug("Ignore exception %s in library %s" % (exception, frame.f_code.co_filename)) # <<<<<<<<<<<<<< @@ -7701,26 +7826,26 @@ * else: */ /*else*/ { - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydev_log); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydev_log); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_debug); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_debug); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_exception); __Pyx_GIVEREF(__pyx_v_exception); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_exception); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Ignore_exception_s_in_library_s, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_9); + __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyString_Format(__pyx_kp_s_Ignore_exception_s_in_library_s, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -7733,44 +7858,44 @@ } } if (!__pyx_t_3) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 316, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { - PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) + PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { - PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) + PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { - __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); __pyx_t_3 = NULL; - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_9); + __pyx_t_9 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":316 + /* "_pydevd_bundle/pydevd_cython.pyx":317 * else: * pydev_log.debug("Ignore exception %s in library %s" % (exception, frame.f_code.co_filename)) * flag = False # <<<<<<<<<<<<<< @@ -7781,7 +7906,7 @@ } __pyx_L12:; - /* "_pydevd_bundle/pydevd_cython.pyx":306 + /* "_pydevd_bundle/pydevd_cython.pyx":307 * * if exception_breakpoint.ignore_libraries: * if exception_breakpoint.notify_on_first_raise_only: # <<<<<<<<<<<<<< @@ -7790,7 +7915,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":305 + /* "_pydevd_bundle/pydevd_cython.pyx":306 * return False, frame * * if exception_breakpoint.ignore_libraries: # <<<<<<<<<<<<<< @@ -7800,7 +7925,7 @@ goto __pyx_L10; } - /* "_pydevd_bundle/pydevd_cython.pyx":318 + /* "_pydevd_bundle/pydevd_cython.pyx":319 * flag = False * else: * if not exception_breakpoint.notify_on_first_raise_only or just_raised(trace): # <<<<<<<<<<<<<< @@ -7808,9 +7933,9 @@ * try: */ /*else*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_notify_on_first_raise_only); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_notify_on_first_raise_only); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_13 = ((!__pyx_t_7) != 0); if (!__pyx_t_13) { @@ -7818,84 +7943,84 @@ __pyx_t_2 = __pyx_t_13; goto __pyx_L22_bool_binop_done; } - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_just_raised); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_just_raised); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = NULL; + __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_9)) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } - if (!__pyx_t_9) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error) + if (!__pyx_t_5) { + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { - PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_trace}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_trace}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { - PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_v_trace}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_trace}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 318, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL; + __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_trace); __Pyx_GIVEREF(__pyx_v_trace); - PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_trace); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error) + PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_trace); + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_13; __pyx_L22_bool_binop_done:; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":319 + /* "_pydevd_bundle/pydevd_cython.pyx":320 * else: * if not exception_breakpoint.notify_on_first_raise_only or just_raised(trace): * add_exception_to_frame(frame, (exception, value, trace)) # <<<<<<<<<<<<<< * try: * info.pydev_message = exception_breakpoint.qname */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 319, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_exception); __Pyx_GIVEREF(__pyx_v_exception); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_exception); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_exception); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); - PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_value); __Pyx_INCREF(__pyx_v_trace); __Pyx_GIVEREF(__pyx_v_trace); - PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_trace); - __pyx_t_9 = NULL; + PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_trace); + __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_9)) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_8 = 1; @@ -7903,42 +8028,42 @@ } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { - PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_frame, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_frame, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 320, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { - PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_frame, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_frame, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 320, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { - __pyx_t_3 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 319, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (__pyx_t_9) { - __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9); __pyx_t_9 = NULL; + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_v_frame); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 319, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_t_9); + __pyx_t_9 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":320 + /* "_pydevd_bundle/pydevd_cython.pyx":321 * if not exception_breakpoint.notify_on_first_raise_only or just_raised(trace): * add_exception_to_frame(frame, (exception, value, trace)) * try: # <<<<<<<<<<<<<< @@ -7954,23 +8079,23 @@ __Pyx_XGOTREF(__pyx_t_10); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":321 + /* "_pydevd_bundle/pydevd_cython.pyx":322 * add_exception_to_frame(frame, (exception, value, trace)) * try: * info.pydev_message = exception_breakpoint.qname # <<<<<<<<<<<<<< * except: * info.pydev_message = exception_breakpoint.qname.encode('utf-8') */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 321, __pyx_L24_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 322, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyString_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 321, __pyx_L24_error) + if (!(likely(PyString_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 322, __pyx_L24_error) __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_info->pydev_message); __Pyx_DECREF(__pyx_v_info->pydev_message); __pyx_v_info->pydev_message = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":320 + /* "_pydevd_bundle/pydevd_cython.pyx":321 * if not exception_breakpoint.notify_on_first_raise_only or just_raised(trace): * add_exception_to_frame(frame, (exception, value, trace)) * try: # <<<<<<<<<<<<<< @@ -7983,13 +8108,13 @@ __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L29_try_end; __pyx_L24_error:; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":322 + /* "_pydevd_bundle/pydevd_cython.pyx":323 * try: * info.pydev_message = exception_breakpoint.qname * except: # <<<<<<<<<<<<<< @@ -7998,32 +8123,32 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.should_stop_on_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_4, &__pyx_t_3) < 0) __PYX_ERR(0, 322, __pyx_L26_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_4, &__pyx_t_3) < 0) __PYX_ERR(0, 323, __pyx_L26_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_3); - /* "_pydevd_bundle/pydevd_cython.pyx":323 + /* "_pydevd_bundle/pydevd_cython.pyx":324 * info.pydev_message = exception_breakpoint.qname * except: * info.pydev_message = exception_breakpoint.qname.encode('utf-8') # <<<<<<<<<<<<<< * flag = True * else: */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 323, __pyx_L26_except_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_encode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 323, __pyx_L26_except_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_qname); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 324, __pyx_L26_except_error) __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 323, __pyx_L26_except_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 324, __pyx_L26_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 323, __pyx_L26_except_error) - __Pyx_GIVEREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 324, __pyx_L26_except_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (!(likely(PyString_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 324, __pyx_L26_except_error) + __Pyx_GIVEREF(__pyx_t_9); __Pyx_GOTREF(__pyx_v_info->pydev_message); __Pyx_DECREF(__pyx_v_info->pydev_message); - __pyx_v_info->pydev_message = ((PyObject*)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_v_info->pydev_message = ((PyObject*)__pyx_t_9); + __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -8031,7 +8156,7 @@ } __pyx_L26_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":320 + /* "_pydevd_bundle/pydevd_cython.pyx":321 * if not exception_breakpoint.notify_on_first_raise_only or just_raised(trace): * add_exception_to_frame(frame, (exception, value, trace)) * try: # <<<<<<<<<<<<<< @@ -8051,7 +8176,7 @@ __pyx_L29_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":324 + /* "_pydevd_bundle/pydevd_cython.pyx":325 * except: * info.pydev_message = exception_breakpoint.qname.encode('utf-8') * flag = True # <<<<<<<<<<<<<< @@ -8060,7 +8185,7 @@ */ __pyx_v_flag = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":318 + /* "_pydevd_bundle/pydevd_cython.pyx":319 * flag = False * else: * if not exception_breakpoint.notify_on_first_raise_only or just_raised(trace): # <<<<<<<<<<<<<< @@ -8070,12 +8195,12 @@ goto __pyx_L21; } - /* "_pydevd_bundle/pydevd_cython.pyx":326 + /* "_pydevd_bundle/pydevd_cython.pyx":327 * flag = True * else: * flag = False # <<<<<<<<<<<<<< - * else: - * try: + * + * if flag: */ /*else*/ { __pyx_v_flag = 0; @@ -8084,24 +8209,82 @@ } __pyx_L10:; - /* "_pydevd_bundle/pydevd_cython.pyx":298 - * exception, main_debugger.break_on_caught_exceptions) + /* "_pydevd_bundle/pydevd_cython.pyx":329 + * flag = False + * + * if flag: # <<<<<<<<<<<<<< + * info.pydev_message = "python-%s" % info.pydev_message * - * if exception_breakpoint is not None: # <<<<<<<<<<<<<< - * add_exception_to_frame(frame, (exception, value, trace)) - * if exception_breakpoint.condition is not None: */ - goto __pyx_L7; - } + __pyx_t_2 = (__pyx_v_flag != 0); + if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":328 - * flag = False - * else: - * try: # <<<<<<<<<<<<<< - * if main_debugger.plugin is not None: + /* "_pydevd_bundle/pydevd_cython.pyx":330 + * + * if flag: + * info.pydev_message = "python-%s" % info.pydev_message # <<<<<<<<<<<<<< + * + * if exception_breakpoint is None or (not flag and not is_real): + */ + __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_python_s, __pyx_v_info->pydev_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_v_info->pydev_message); + __Pyx_DECREF(__pyx_v_info->pydev_message); + __pyx_v_info->pydev_message = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "_pydevd_bundle/pydevd_cython.pyx":329 + * flag = False + * + * if flag: # <<<<<<<<<<<<<< + * info.pydev_message = "python-%s" % info.pydev_message + * + */ + } + + /* "_pydevd_bundle/pydevd_cython.pyx":299 + * is_real = is_real_file(frame.f_code.co_filename) + * + * if exception_breakpoint is not None: # <<<<<<<<<<<<<< + * add_exception_to_frame(frame, (exception, value, trace)) + * if exception_breakpoint.condition is not None: + */ + } + + /* "_pydevd_bundle/pydevd_cython.pyx":332 + * info.pydev_message = "python-%s" % info.pydev_message + * + * if exception_breakpoint is None or (not flag and not is_real): # <<<<<<<<<<<<<< + * try: + * if main_debugger.plugin is not None: + */ + __pyx_t_13 = (__pyx_v_exception_breakpoint == Py_None); + __pyx_t_7 = (__pyx_t_13 != 0); + if (!__pyx_t_7) { + } else { + __pyx_t_2 = __pyx_t_7; + goto __pyx_L34_bool_binop_done; + } + __pyx_t_7 = ((!(__pyx_v_flag != 0)) != 0); + if (__pyx_t_7) { + } else { + __pyx_t_2 = __pyx_t_7; + goto __pyx_L34_bool_binop_done; + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_is_real); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 332, __pyx_L1_error) + __pyx_t_13 = ((!__pyx_t_7) != 0); + __pyx_t_2 = __pyx_t_13; + __pyx_L34_bool_binop_done:; + if (__pyx_t_2) { + + /* "_pydevd_bundle/pydevd_cython.pyx":333 + * + * if exception_breakpoint is None or (not flag and not is_real): + * try: # <<<<<<<<<<<<<< + * if main_debugger.plugin is not None: * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) */ - /*else*/ { { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -8111,30 +8294,30 @@ __Pyx_XGOTREF(__pyx_t_12); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":329 - * else: + /* "_pydevd_bundle/pydevd_cython.pyx":334 + * if exception_breakpoint is None or (not flag and not is_real): * try: * if main_debugger.plugin is not None: # <<<<<<<<<<<<<< * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) * if result: */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 329, __pyx_L32_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 334, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = (__pyx_t_3 != Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_13 = (__pyx_t_2 != 0); if (__pyx_t_13) { - /* "_pydevd_bundle/pydevd_cython.pyx":330 + /* "_pydevd_bundle/pydevd_cython.pyx":335 * try: * if main_debugger.plugin is not None: * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) # <<<<<<<<<<<<<< * if result: * flag, frame = result */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 330, __pyx_L32_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 335, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_exception_break); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 330, __pyx_L32_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_exception_break); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 335, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -8152,7 +8335,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[6] = {__pyx_t_4, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, __pyx_v_self->_args, __pyx_v_arg}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 330, __pyx_L32_error) + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 335, __pyx_L37_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else @@ -8160,51 +8343,51 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[6] = {__pyx_t_4, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, __pyx_v_self->_args, __pyx_v_arg}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 330, __pyx_L32_error) + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 335, __pyx_L37_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { - __pyx_t_5 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 330, __pyx_L32_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 335, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_main_debugger); __Pyx_GIVEREF(__pyx_v_main_debugger); - PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_main_debugger); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_main_debugger); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); - PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, ((PyObject *)__pyx_v_self)); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); - PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_v_frame); + PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_v_frame); __Pyx_INCREF(__pyx_v_self->_args); __Pyx_GIVEREF(__pyx_v_self->_args); - PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_8, __pyx_v_self->_args); + PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_self->_args); __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); - PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_8, __pyx_v_arg); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 330, __pyx_L32_error) + PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_v_arg); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 335, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_result = __pyx_t_3; __pyx_t_3 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":331 + /* "_pydevd_bundle/pydevd_cython.pyx":336 * if main_debugger.plugin is not None: * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) * if result: # <<<<<<<<<<<<<< * flag, frame = result * except: */ - __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 331, __pyx_L32_error) + __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 336, __pyx_L37_error) if (__pyx_t_13) { - /* "_pydevd_bundle/pydevd_cython.pyx":332 + /* "_pydevd_bundle/pydevd_cython.pyx":337 * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) * if result: * flag, frame = result # <<<<<<<<<<<<<< @@ -8213,15 +8396,11 @@ */ if ((likely(PyTuple_CheckExact(__pyx_v_result))) || (PyList_CheckExact(__pyx_v_result))) { PyObject* sequence = __pyx_v_result; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 332, __pyx_L32_error) + __PYX_ERR(0, 337, __pyx_L37_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -8234,38 +8413,38 @@ __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); #else - __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 332, __pyx_L32_error) + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 337, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 332, __pyx_L32_error) + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 337, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { Py_ssize_t index = -1; - __pyx_t_5 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 332, __pyx_L32_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; - index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L40_unpacking_failed; + __pyx_t_9 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 337, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_6 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_9); if (unlikely(!__pyx_t_3)) goto __pyx_L45_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); - index = 1; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L40_unpacking_failed; + index = 1; __pyx_t_1 = __pyx_t_6(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L45_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(0, 332, __pyx_L32_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_9), 2) < 0) __PYX_ERR(0, 337, __pyx_L37_error) __pyx_t_6 = NULL; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L41_unpacking_done; - __pyx_L40_unpacking_failed:; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L46_unpacking_done; + __pyx_L45_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 332, __pyx_L32_error) - __pyx_L41_unpacking_done:; + __PYX_ERR(0, 337, __pyx_L37_error) + __pyx_L46_unpacking_done:; } - __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 332, __pyx_L32_error) + __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 337, __pyx_L37_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_flag = __pyx_t_13; __Pyx_DECREF_SET(__pyx_v_frame, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":331 + /* "_pydevd_bundle/pydevd_cython.pyx":336 * if main_debugger.plugin is not None: * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) * if result: # <<<<<<<<<<<<<< @@ -8274,8 +8453,8 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":329 - * else: + /* "_pydevd_bundle/pydevd_cython.pyx":334 + * if exception_breakpoint is None or (not flag and not is_real): * try: * if main_debugger.plugin is not None: # <<<<<<<<<<<<<< * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) @@ -8283,9 +8462,9 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":328 - * flag = False - * else: + /* "_pydevd_bundle/pydevd_cython.pyx":333 + * + * if exception_breakpoint is None or (not flag and not is_real): * try: # <<<<<<<<<<<<<< * if main_debugger.plugin is not None: * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) @@ -8294,15 +8473,15 @@ __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - goto __pyx_L37_try_end; - __pyx_L32_error:; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L42_try_end; + __pyx_L37_error:; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":333 + /* "_pydevd_bundle/pydevd_cython.pyx":338 * if result: * flag, frame = result * except: # <<<<<<<<<<<<<< @@ -8311,12 +8490,12 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.should_stop_on_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_5) < 0) __PYX_ERR(0, 333, __pyx_L34_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_9) < 0) __PYX_ERR(0, 338, __pyx_L39_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_9); - /* "_pydevd_bundle/pydevd_cython.pyx":334 + /* "_pydevd_bundle/pydevd_cython.pyx":339 * flag, frame = result * except: * flag = False # <<<<<<<<<<<<<< @@ -8326,14 +8505,14 @@ __pyx_v_flag = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L33_exception_handled; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L38_exception_handled; } - __pyx_L34_except_error:; + __pyx_L39_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":328 - * flag = False - * else: + /* "_pydevd_bundle/pydevd_cython.pyx":333 + * + * if exception_breakpoint is None or (not flag and not is_real): * try: # <<<<<<<<<<<<<< * if main_debugger.plugin is not None: * result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) @@ -8343,17 +8522,24 @@ __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); goto __pyx_L1_error; - __pyx_L33_exception_handled:; + __pyx_L38_exception_handled:; __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); - __pyx_L37_try_end:; + __pyx_L42_try_end:; } + + /* "_pydevd_bundle/pydevd_cython.pyx":332 + * info.pydev_message = "python-%s" % info.pydev_message + * + * if exception_breakpoint is None or (not flag and not is_real): # <<<<<<<<<<<<<< + * try: + * if main_debugger.plugin is not None: + */ } - __pyx_L7:; - /* "_pydevd_bundle/pydevd_cython.pyx":336 + /* "_pydevd_bundle/pydevd_cython.pyx":341 * flag = False * * if flag: # <<<<<<<<<<<<<< @@ -8363,7 +8549,7 @@ __pyx_t_13 = (__pyx_v_flag != 0); if (__pyx_t_13) { - /* "_pydevd_bundle/pydevd_cython.pyx":337 + /* "_pydevd_bundle/pydevd_cython.pyx":342 * * if flag: * if exception_breakpoint is not None and exception_breakpoint.expression is not None: # <<<<<<<<<<<<<< @@ -8375,25 +8561,25 @@ if (__pyx_t_7) { } else { __pyx_t_13 = __pyx_t_7; - goto __pyx_L46_bool_binop_done; + goto __pyx_L51_bool_binop_done; } - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_expression); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 337, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = (__pyx_t_5 != Py_None); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_exception_breakpoint, __pyx_n_s_expression); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = (__pyx_t_9 != Py_None); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_2 = (__pyx_t_7 != 0); __pyx_t_13 = __pyx_t_2; - __pyx_L46_bool_binop_done:; + __pyx_L51_bool_binop_done:; if (__pyx_t_13) { - /* "_pydevd_bundle/pydevd_cython.pyx":338 + /* "_pydevd_bundle/pydevd_cython.pyx":343 * if flag: * if exception_breakpoint is not None and exception_breakpoint.expression is not None: * handle_breakpoint_expression(exception_breakpoint, info, frame) # <<<<<<<<<<<<<< * else: * remove_exception_from_frame(frame) */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_handle_breakpoint_expression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 338, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_handle_breakpoint_expression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; __pyx_t_8 = 0; @@ -8410,21 +8596,21 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_exception_breakpoint, ((PyObject *)__pyx_v_info), __pyx_v_frame}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 338, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_exception_breakpoint, ((PyObject *)__pyx_v_info), __pyx_v_frame}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 338, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_9); } else #endif { - __pyx_t_4 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 338, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -8438,14 +8624,14 @@ __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_8, __pyx_v_frame); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 338, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":337 + /* "_pydevd_bundle/pydevd_cython.pyx":342 * * if flag: * if exception_breakpoint is not None and exception_breakpoint.expression is not None: # <<<<<<<<<<<<<< @@ -8454,17 +8640,17 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":336 + /* "_pydevd_bundle/pydevd_cython.pyx":341 * flag = False * * if flag: # <<<<<<<<<<<<<< * if exception_breakpoint is not None and exception_breakpoint.expression is not None: * handle_breakpoint_expression(exception_breakpoint, info, frame) */ - goto __pyx_L44; + goto __pyx_L49; } - /* "_pydevd_bundle/pydevd_cython.pyx":340 + /* "_pydevd_bundle/pydevd_cython.pyx":345 * handle_breakpoint_expression(exception_breakpoint, info, frame) * else: * remove_exception_from_frame(frame) # <<<<<<<<<<<<<< @@ -8472,7 +8658,7 @@ * return flag, frame */ /*else*/ { - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 340, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -8485,41 +8671,41 @@ } } if (!__pyx_t_4) { - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 340, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_frame); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_frame}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 340, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_9); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_frame}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 340, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_9); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 340, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_frame); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 340, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } - __pyx_L44:; + __pyx_L49:; /* "_pydevd_bundle/pydevd_cython.pyx":294 * exception, value, trace = arg @@ -8539,7 +8725,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":342 + /* "_pydevd_bundle/pydevd_cython.pyx":347 * remove_exception_from_frame(frame) * * return flag, frame # <<<<<<<<<<<<<< @@ -8547,16 +8733,16 @@ * def handle_exception(self, frame, event, arg): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_flag); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 342, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyBool_FromLong(__pyx_v_flag); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9); __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_frame); - __pyx_t_5 = 0; + __pyx_t_9 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; @@ -8585,6 +8771,7 @@ __Pyx_XDECREF(__pyx_v_value); __Pyx_XDECREF(__pyx_v_trace); __Pyx_XDECREF(__pyx_v_exception_breakpoint); + __Pyx_XDECREF(__pyx_v_is_real); __Pyx_XDECREF(__pyx_v_eval_result); __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_frame); @@ -8593,7 +8780,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":344 +/* "_pydevd_bundle/pydevd_cython.pyx":349 * return flag, frame * * def handle_exception(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -8629,23 +8816,23 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, 1); __PYX_ERR(0, 344, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, 1); __PYX_ERR(0, 349, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, 2); __PYX_ERR(0, 344, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, 2); __PYX_ERR(0, 349, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "handle_exception") < 0)) __PYX_ERR(0, 344, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "handle_exception") < 0)) __PYX_ERR(0, 349, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -8660,7 +8847,7 @@ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 344, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("handle_exception", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 349, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.handle_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -8720,7 +8907,7 @@ char const *__pyx_t_25; __Pyx_RefNannySetupContext("handle_exception", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":345 + /* "_pydevd_bundle/pydevd_cython.pyx":350 * * def handle_exception(self, frame, event, arg): * try: # <<<<<<<<<<<<<< @@ -8729,19 +8916,19 @@ */ /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":349 + /* "_pydevd_bundle/pydevd_cython.pyx":354 * * # We have 3 things in arg: exception type, description, traceback object * trace_obj = arg[2] # <<<<<<<<<<<<<< * main_debugger = self._args[0] * */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_arg, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L4_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_arg, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 354, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_trace_obj = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":350 + /* "_pydevd_bundle/pydevd_cython.pyx":355 * # We have 3 things in arg: exception type, description, traceback object * trace_obj = arg[2] * main_debugger = self._args[0] # <<<<<<<<<<<<<< @@ -8750,25 +8937,25 @@ */ if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 350, __pyx_L4_error) + __PYX_ERR(0, 355, __pyx_L4_error) } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L4_error) + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 355, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_main_debugger = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":352 + /* "_pydevd_bundle/pydevd_cython.pyx":357 * main_debugger = self._args[0] * * if not hasattr(trace_obj, 'tb_next'): # <<<<<<<<<<<<<< * return #Not always there on Jython... * */ - __pyx_t_2 = __Pyx_HasAttr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 352, __pyx_L4_error) + __pyx_t_2 = __Pyx_HasAttr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 357, __pyx_L4_error) __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":353 + /* "_pydevd_bundle/pydevd_cython.pyx":358 * * if not hasattr(trace_obj, 'tb_next'): * return #Not always there on Jython... # <<<<<<<<<<<<<< @@ -8779,7 +8966,7 @@ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":352 + /* "_pydevd_bundle/pydevd_cython.pyx":357 * main_debugger = self._args[0] * * if not hasattr(trace_obj, 'tb_next'): # <<<<<<<<<<<<<< @@ -8788,7 +8975,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":355 + /* "_pydevd_bundle/pydevd_cython.pyx":360 * return #Not always there on Jython... * * initial_trace_obj = trace_obj # <<<<<<<<<<<<<< @@ -8798,14 +8985,14 @@ __Pyx_INCREF(__pyx_v_trace_obj); __pyx_v_initial_trace_obj = __pyx_v_trace_obj; - /* "_pydevd_bundle/pydevd_cython.pyx":356 + /* "_pydevd_bundle/pydevd_cython.pyx":361 * * initial_trace_obj = trace_obj * if trace_obj.tb_next is None and trace_obj.tb_frame is frame: # <<<<<<<<<<<<<< * #I.e.: tb_next should be only None in the context it was thrown (trace_obj.tb_frame is frame is just a double check). * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 361, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -8815,7 +9002,7 @@ __pyx_t_3 = __pyx_t_4; goto __pyx_L8_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 361, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = (__pyx_t_1 == __pyx_v_frame); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -8824,20 +9011,20 @@ __pyx_L8_bool_binop_done:; if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":359 + /* "_pydevd_bundle/pydevd_cython.pyx":364 * #I.e.: tb_next should be only None in the context it was thrown (trace_obj.tb_frame is frame is just a double check). * * if main_debugger.break_on_exceptions_thrown_in_same_context: # <<<<<<<<<<<<<< * #Option: Don't break if an exception is caught in the same function from which it is thrown * return */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_break_on_exceptions_thrown_in_sa); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 359, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_break_on_exceptions_thrown_in_sa); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 359, __pyx_L4_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 364, __pyx_L4_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":361 + /* "_pydevd_bundle/pydevd_cython.pyx":366 * if main_debugger.break_on_exceptions_thrown_in_same_context: * #Option: Don't break if an exception is caught in the same function from which it is thrown * return # <<<<<<<<<<<<<< @@ -8848,7 +9035,7 @@ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":359 + /* "_pydevd_bundle/pydevd_cython.pyx":364 * #I.e.: tb_next should be only None in the context it was thrown (trace_obj.tb_frame is frame is just a double check). * * if main_debugger.break_on_exceptions_thrown_in_same_context: # <<<<<<<<<<<<<< @@ -8857,7 +9044,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":356 + /* "_pydevd_bundle/pydevd_cython.pyx":361 * * initial_trace_obj = trace_obj * if trace_obj.tb_next is None and trace_obj.tb_frame is frame: # <<<<<<<<<<<<<< @@ -8867,7 +9054,7 @@ goto __pyx_L7; } - /* "_pydevd_bundle/pydevd_cython.pyx":364 + /* "_pydevd_bundle/pydevd_cython.pyx":369 * else: * #Get the trace_obj from where the exception was raised... * while trace_obj.tb_next is not None: # <<<<<<<<<<<<<< @@ -8876,21 +9063,21 @@ */ /*else*/ { while (1) { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 369, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__pyx_t_1 != Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = (__pyx_t_3 != 0); if (!__pyx_t_2) break; - /* "_pydevd_bundle/pydevd_cython.pyx":365 + /* "_pydevd_bundle/pydevd_cython.pyx":370 * #Get the trace_obj from where the exception was raised... * while trace_obj.tb_next is not None: * trace_obj = trace_obj.tb_next # <<<<<<<<<<<<<< * * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 365, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_trace_obj, __pyx_t_1); __pyx_t_1 = 0; @@ -8898,27 +9085,27 @@ } __pyx_L7:; - /* "_pydevd_bundle/pydevd_cython.pyx":368 + /* "_pydevd_bundle/pydevd_cython.pyx":373 * * * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception: # <<<<<<<<<<<<<< * for check_trace_obj in (initial_trace_obj, trace_obj): * filename = get_abs_path_real_path_and_base_from_frame(check_trace_obj.tb_frame)[1] */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_ignore_exceptions_thrown_in_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_ignore_exceptions_thrown_in_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 373, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 368, __pyx_L4_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 373, __pyx_L4_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":369 + /* "_pydevd_bundle/pydevd_cython.pyx":374 * * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception: * for check_trace_obj in (initial_trace_obj, trace_obj): # <<<<<<<<<<<<<< * filename = get_abs_path_real_path_and_base_from_frame(check_trace_obj.tb_frame)[1] * */ - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 369, __pyx_L4_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_initial_trace_obj); __Pyx_GIVEREF(__pyx_v_initial_trace_obj); @@ -8931,24 +9118,24 @@ for (;;) { if (__pyx_t_6 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 369, __pyx_L4_error) + __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 374, __pyx_L4_error) #else - __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 369, __pyx_L4_error) + __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XDECREF_SET(__pyx_v_check_trace_obj, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":370 + /* "_pydevd_bundle/pydevd_cython.pyx":375 * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception: * for check_trace_obj in (initial_trace_obj, trace_obj): * filename = get_abs_path_real_path_and_base_from_frame(check_trace_obj.tb_frame)[1] # <<<<<<<<<<<<<< * * */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L4_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 375, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 375, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { @@ -8961,14 +9148,14 @@ } } if (!__pyx_t_9) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 375, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 375, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -8977,51 +9164,51 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 375, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { - __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 370, __pyx_L4_error) + __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 375, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = NULL; __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_t_8); __pyx_t_8 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 375, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L4_error) + __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 375, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_filename, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":373 + /* "_pydevd_bundle/pydevd_cython.pyx":378 * * * filename_to_lines_where_exceptions_are_ignored = self.filename_to_lines_where_exceptions_are_ignored # <<<<<<<<<<<<<< * * */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_lines_where_exceptio); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 373, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_lines_where_exceptio); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 378, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_XDECREF_SET(__pyx_v_filename_to_lines_where_exceptions_are_ignored, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":376 + /* "_pydevd_bundle/pydevd_cython.pyx":381 * * * lines_ignored = filename_to_lines_where_exceptions_are_ignored.get(filename) # <<<<<<<<<<<<<< * if lines_ignored is None: * lines_ignored = filename_to_lines_where_exceptions_are_ignored[filename] = {} */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filename_to_lines_where_exceptions_are_ignored, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 376, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filename_to_lines_where_exceptions_are_ignored, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 381, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -9034,13 +9221,13 @@ } } if (!__pyx_t_10) { - __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 376, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 381, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 376, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 381, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_7); } else @@ -9048,19 +9235,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 376, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 381, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { - __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 376, __pyx_L4_error) + __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 381, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_10); __pyx_t_10 = NULL; __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_filename); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 376, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 381, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -9069,7 +9256,7 @@ __Pyx_XDECREF_SET(__pyx_v_lines_ignored, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":377 + /* "_pydevd_bundle/pydevd_cython.pyx":382 * * lines_ignored = filename_to_lines_where_exceptions_are_ignored.get(filename) * if lines_ignored is None: # <<<<<<<<<<<<<< @@ -9080,21 +9267,21 @@ __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":378 + /* "_pydevd_bundle/pydevd_cython.pyx":383 * lines_ignored = filename_to_lines_where_exceptions_are_ignored.get(filename) * if lines_ignored is None: * lines_ignored = filename_to_lines_where_exceptions_are_ignored[filename] = {} # <<<<<<<<<<<<<< * * try: */ - __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 378, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 383, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_7); __Pyx_DECREF_SET(__pyx_v_lines_ignored, __pyx_t_7); - if (unlikely(PyObject_SetItem(__pyx_v_filename_to_lines_where_exceptions_are_ignored, __pyx_v_filename, __pyx_t_7) < 0)) __PYX_ERR(0, 378, __pyx_L4_error) + if (unlikely(PyObject_SetItem(__pyx_v_filename_to_lines_where_exceptions_are_ignored, __pyx_v_filename, __pyx_t_7) < 0)) __PYX_ERR(0, 383, __pyx_L4_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":377 + /* "_pydevd_bundle/pydevd_cython.pyx":382 * * lines_ignored = filename_to_lines_where_exceptions_are_ignored.get(filename) * if lines_ignored is None: # <<<<<<<<<<<<<< @@ -9103,7 +9290,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":380 + /* "_pydevd_bundle/pydevd_cython.pyx":385 * lines_ignored = filename_to_lines_where_exceptions_are_ignored[filename] = {} * * try: # <<<<<<<<<<<<<< @@ -9119,16 +9306,16 @@ __Pyx_XGOTREF(__pyx_t_13); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":381 + /* "_pydevd_bundle/pydevd_cython.pyx":386 * * try: * curr_stat = os.stat(filename) # <<<<<<<<<<<<<< * curr_stat = (curr_stat.st_size, curr_stat.st_mtime) * except: */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 381, __pyx_L17_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 386, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stat); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 381, __pyx_L17_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stat); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 386, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -9142,13 +9329,13 @@ } } if (!__pyx_t_1) { - __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 381, __pyx_L17_error) + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 386, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_7); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 381, __pyx_L17_error) + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 386, __pyx_L17_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_7); } else @@ -9156,19 +9343,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 381, __pyx_L17_error) + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 386, __pyx_L17_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { - __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 381, __pyx_L17_error) + __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 386, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_filename); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 381, __pyx_L17_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 386, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -9177,18 +9364,18 @@ __Pyx_XDECREF_SET(__pyx_v_curr_stat, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":382 + /* "_pydevd_bundle/pydevd_cython.pyx":387 * try: * curr_stat = os.stat(filename) * curr_stat = (curr_stat.st_size, curr_stat.st_mtime) # <<<<<<<<<<<<<< * except: * curr_stat = None */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_curr_stat, __pyx_n_s_st_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 382, __pyx_L17_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_curr_stat, __pyx_n_s_st_size); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 387, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_curr_stat, __pyx_n_s_st_mtime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 382, __pyx_L17_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_curr_stat, __pyx_n_s_st_mtime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 387, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 382, __pyx_L17_error) + __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 387, __pyx_L17_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); @@ -9199,7 +9386,7 @@ __Pyx_DECREF_SET(__pyx_v_curr_stat, __pyx_t_10); __pyx_t_10 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":380 + /* "_pydevd_bundle/pydevd_cython.pyx":385 * lines_ignored = filename_to_lines_where_exceptions_are_ignored[filename] = {} * * try: # <<<<<<<<<<<<<< @@ -9218,7 +9405,7 @@ __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":383 + /* "_pydevd_bundle/pydevd_cython.pyx":388 * curr_stat = os.stat(filename) * curr_stat = (curr_stat.st_size, curr_stat.st_mtime) * except: # <<<<<<<<<<<<<< @@ -9227,12 +9414,12 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.handle_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_8, &__pyx_t_7) < 0) __PYX_ERR(0, 383, __pyx_L19_except_error) + if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_8, &__pyx_t_7) < 0) __PYX_ERR(0, 388, __pyx_L19_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_7); - /* "_pydevd_bundle/pydevd_cython.pyx":384 + /* "_pydevd_bundle/pydevd_cython.pyx":389 * curr_stat = (curr_stat.st_size, curr_stat.st_mtime) * except: * curr_stat = None # <<<<<<<<<<<<<< @@ -9248,7 +9435,7 @@ } __pyx_L19_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":380 + /* "_pydevd_bundle/pydevd_cython.pyx":385 * lines_ignored = filename_to_lines_where_exceptions_are_ignored[filename] = {} * * try: # <<<<<<<<<<<<<< @@ -9268,16 +9455,16 @@ __pyx_L24_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":386 + /* "_pydevd_bundle/pydevd_cython.pyx":391 * curr_stat = None * * last_stat = self.filename_to_stat_info.get(filename) # <<<<<<<<<<<<<< * if last_stat != curr_stat: * self.filename_to_stat_info[filename] = curr_stat */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_stat_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 386, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_stat_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 391, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 386, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 391, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; @@ -9291,13 +9478,13 @@ } } if (!__pyx_t_8) { - __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 386, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 391, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 386, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 391, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_7); } else @@ -9305,19 +9492,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 386, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 391, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 386, __pyx_L4_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 391, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_filename); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 386, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 391, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } @@ -9326,38 +9513,38 @@ __Pyx_XDECREF_SET(__pyx_v_last_stat, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":387 + /* "_pydevd_bundle/pydevd_cython.pyx":392 * * last_stat = self.filename_to_stat_info.get(filename) * if last_stat != curr_stat: # <<<<<<<<<<<<<< * self.filename_to_stat_info[filename] = curr_stat * lines_ignored.clear() */ - __pyx_t_7 = PyObject_RichCompare(__pyx_v_last_stat, __pyx_v_curr_stat, Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 387, __pyx_L4_error) - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 387, __pyx_L4_error) + __pyx_t_7 = PyObject_RichCompare(__pyx_v_last_stat, __pyx_v_curr_stat, Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 392, __pyx_L4_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 392, __pyx_L4_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":388 + /* "_pydevd_bundle/pydevd_cython.pyx":393 * last_stat = self.filename_to_stat_info.get(filename) * if last_stat != curr_stat: * self.filename_to_stat_info[filename] = curr_stat # <<<<<<<<<<<<<< * lines_ignored.clear() * try: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_stat_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 388, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filename_to_stat_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 393, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); - if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_filename, __pyx_v_curr_stat) < 0)) __PYX_ERR(0, 388, __pyx_L4_error) + if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_filename, __pyx_v_curr_stat) < 0)) __PYX_ERR(0, 393, __pyx_L4_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":389 + /* "_pydevd_bundle/pydevd_cython.pyx":394 * if last_stat != curr_stat: * self.filename_to_stat_info[filename] = curr_stat * lines_ignored.clear() # <<<<<<<<<<<<<< * try: * linecache.checkcache(filename) */ - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_lines_ignored, __pyx_n_s_clear); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 389, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_lines_ignored, __pyx_n_s_clear); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 394, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { @@ -9370,16 +9557,16 @@ } } if (__pyx_t_1) { - __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 389, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 394, __pyx_L4_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { - __pyx_t_7 = __Pyx_PyObject_CallNoArg(__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 389, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_CallNoArg(__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 394, __pyx_L4_error) } __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":390 + /* "_pydevd_bundle/pydevd_cython.pyx":395 * self.filename_to_stat_info[filename] = curr_stat * lines_ignored.clear() * try: # <<<<<<<<<<<<<< @@ -9395,16 +9582,16 @@ __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":391 + /* "_pydevd_bundle/pydevd_cython.pyx":396 * lines_ignored.clear() * try: * linecache.checkcache(filename) # <<<<<<<<<<<<<< * except: * #Jython 2.1 */ - __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_linecache); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 391, __pyx_L28_error) + __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_linecache); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 396, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_checkcache); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 391, __pyx_L28_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_checkcache); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 396, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; @@ -9418,13 +9605,13 @@ } } if (!__pyx_t_10) { - __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 391, __pyx_L28_error) + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 396, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_7); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 391, __pyx_L28_error) + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 396, __pyx_L28_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_7); } else @@ -9432,19 +9619,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 391, __pyx_L28_error) + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 396, __pyx_L28_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { - __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 391, __pyx_L28_error) + __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 396, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_10); __pyx_t_10 = NULL; __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_filename); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 391, __pyx_L28_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 396, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -9452,7 +9639,7 @@ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":390 + /* "_pydevd_bundle/pydevd_cython.pyx":395 * self.filename_to_stat_info[filename] = curr_stat * lines_ignored.clear() * try: # <<<<<<<<<<<<<< @@ -9471,7 +9658,7 @@ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":392 + /* "_pydevd_bundle/pydevd_cython.pyx":397 * try: * linecache.checkcache(filename) * except: # <<<<<<<<<<<<<< @@ -9480,21 +9667,21 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.handle_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 392, __pyx_L30_except_error) + if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 397, __pyx_L30_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); - /* "_pydevd_bundle/pydevd_cython.pyx":394 + /* "_pydevd_bundle/pydevd_cython.pyx":399 * except: * #Jython 2.1 * linecache.checkcache() # <<<<<<<<<<<<<< * * from_user_input = main_debugger.filename_to_lines_where_exceptions_are_ignored.get(filename) */ - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_linecache); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 394, __pyx_L30_except_error) + __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_linecache); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 399, __pyx_L30_except_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_checkcache); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 394, __pyx_L30_except_error) + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_checkcache); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 399, __pyx_L30_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; @@ -9508,10 +9695,10 @@ } } if (__pyx_t_9) { - __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 394, __pyx_L30_except_error) + __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 399, __pyx_L30_except_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { - __pyx_t_10 = __Pyx_PyObject_CallNoArg(__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 394, __pyx_L30_except_error) + __pyx_t_10 = __Pyx_PyObject_CallNoArg(__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 399, __pyx_L30_except_error) } __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; @@ -9523,7 +9710,7 @@ } __pyx_L30_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":390 + /* "_pydevd_bundle/pydevd_cython.pyx":395 * self.filename_to_stat_info[filename] = curr_stat * lines_ignored.clear() * try: # <<<<<<<<<<<<<< @@ -9543,7 +9730,7 @@ __pyx_L35_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":387 + /* "_pydevd_bundle/pydevd_cython.pyx":392 * * last_stat = self.filename_to_stat_info.get(filename) * if last_stat != curr_stat: # <<<<<<<<<<<<<< @@ -9552,16 +9739,16 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":396 + /* "_pydevd_bundle/pydevd_cython.pyx":401 * linecache.checkcache() * * from_user_input = main_debugger.filename_to_lines_where_exceptions_are_ignored.get(filename) # <<<<<<<<<<<<<< * if from_user_input: * merged = {} */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_filename_to_lines_where_exceptio); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 396, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_filename_to_lines_where_exceptio); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 401, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 396, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 401, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; @@ -9575,13 +9762,13 @@ } } if (!__pyx_t_1) { - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 396, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 401, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_filename}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 396, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 401, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -9589,19 +9776,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_filename}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 396, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 401, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 396, __pyx_L4_error) + __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 401, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_filename); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 396, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 401, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -9610,36 +9797,36 @@ __Pyx_XDECREF_SET(__pyx_v_from_user_input, __pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":397 + /* "_pydevd_bundle/pydevd_cython.pyx":402 * * from_user_input = main_debugger.filename_to_lines_where_exceptions_are_ignored.get(filename) * if from_user_input: # <<<<<<<<<<<<<< * merged = {} * merged.update(lines_ignored) */ - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_from_user_input); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 397, __pyx_L4_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_from_user_input); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 402, __pyx_L4_error) if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":398 + /* "_pydevd_bundle/pydevd_cython.pyx":403 * from_user_input = main_debugger.filename_to_lines_where_exceptions_are_ignored.get(filename) * if from_user_input: * merged = {} # <<<<<<<<<<<<<< * merged.update(lines_ignored) * #Override what we have with the related entries that the user entered */ - __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 398, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 403, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_merged, __pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":399 + /* "_pydevd_bundle/pydevd_cython.pyx":404 * if from_user_input: * merged = {} * merged.update(lines_ignored) # <<<<<<<<<<<<<< * #Override what we have with the related entries that the user entered * merged.update(from_user_input) */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 399, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 404, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -9652,13 +9839,13 @@ } } if (!__pyx_t_10) { - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_lines_ignored); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 399, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_lines_ignored); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 404, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_lines_ignored}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 399, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 404, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -9666,19 +9853,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_lines_ignored}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 399, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 404, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 399, __pyx_L4_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 404, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __pyx_t_10 = NULL; __Pyx_INCREF(__pyx_v_lines_ignored); __Pyx_GIVEREF(__pyx_v_lines_ignored); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_lines_ignored); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 399, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 404, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } @@ -9686,14 +9873,14 @@ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":401 + /* "_pydevd_bundle/pydevd_cython.pyx":406 * merged.update(lines_ignored) * #Override what we have with the related entries that the user entered * merged.update(from_user_input) # <<<<<<<<<<<<<< * else: * merged = lines_ignored */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 401, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 406, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -9706,13 +9893,13 @@ } } if (!__pyx_t_1) { - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_from_user_input); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 401, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_from_user_input); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 406, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_from_user_input}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 401, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 406, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -9720,19 +9907,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_from_user_input}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 401, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 406, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 401, __pyx_L4_error) + __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 406, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_from_user_input); __Pyx_GIVEREF(__pyx_v_from_user_input); PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_from_user_input); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 401, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 406, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -9740,7 +9927,7 @@ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":397 + /* "_pydevd_bundle/pydevd_cython.pyx":402 * * from_user_input = main_debugger.filename_to_lines_where_exceptions_are_ignored.get(filename) * if from_user_input: # <<<<<<<<<<<<<< @@ -9750,7 +9937,7 @@ goto __pyx_L38; } - /* "_pydevd_bundle/pydevd_cython.pyx":403 + /* "_pydevd_bundle/pydevd_cython.pyx":408 * merged.update(from_user_input) * else: * merged = lines_ignored # <<<<<<<<<<<<<< @@ -9763,30 +9950,30 @@ } __pyx_L38:; - /* "_pydevd_bundle/pydevd_cython.pyx":405 + /* "_pydevd_bundle/pydevd_cython.pyx":410 * merged = lines_ignored * * exc_lineno = check_trace_obj.tb_lineno # <<<<<<<<<<<<<< * * # print ('lines ignored', lines_ignored) */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_lineno); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 405, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_lineno); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 410, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_exc_lineno, __pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":411 + /* "_pydevd_bundle/pydevd_cython.pyx":416 * # print ('merged', merged, 'curr', exc_lineno) * * if exc_lineno not in merged: #Note: check on merged but update lines_ignored. # <<<<<<<<<<<<<< * try: * line = linecache.getline(filename, exc_lineno, check_trace_obj.tb_frame.f_globals) */ - __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_exc_lineno, __pyx_v_merged, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 411, __pyx_L4_error) + __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_exc_lineno, __pyx_v_merged, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 416, __pyx_L4_error) __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { - /* "_pydevd_bundle/pydevd_cython.pyx":412 + /* "_pydevd_bundle/pydevd_cython.pyx":417 * * if exc_lineno not in merged: #Note: check on merged but update lines_ignored. * try: # <<<<<<<<<<<<<< @@ -9802,21 +9989,21 @@ __Pyx_XGOTREF(__pyx_t_13); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":413 + /* "_pydevd_bundle/pydevd_cython.pyx":418 * if exc_lineno not in merged: #Note: check on merged but update lines_ignored. * try: * line = linecache.getline(filename, exc_lineno, check_trace_obj.tb_frame.f_globals) # <<<<<<<<<<<<<< * except: * #Jython 2.1 */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_linecache); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 413, __pyx_L40_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_linecache); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 418, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_getline); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 413, __pyx_L40_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_getline); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 418, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 413, __pyx_L40_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_check_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 418, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_f_globals); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 413, __pyx_L40_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_f_globals); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 418, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; @@ -9834,7 +10021,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_filename, __pyx_v_exc_lineno, __pyx_t_1}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 413, __pyx_L40_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 418, __pyx_L40_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -9843,14 +10030,14 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_filename, __pyx_v_exc_lineno, __pyx_t_1}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 413, __pyx_L40_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 418, __pyx_L40_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_14 = PyTuple_New(3+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 413, __pyx_L40_error) + __pyx_t_14 = PyTuple_New(3+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 418, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -9864,7 +10051,7 @@ __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_15, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_14, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 413, __pyx_L40_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_14, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 418, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } @@ -9872,7 +10059,7 @@ __Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":412 + /* "_pydevd_bundle/pydevd_cython.pyx":417 * * if exc_lineno not in merged: #Note: check on merged but update lines_ignored. * try: # <<<<<<<<<<<<<< @@ -9892,7 +10079,7 @@ __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":414 + /* "_pydevd_bundle/pydevd_cython.pyx":419 * try: * line = linecache.getline(filename, exc_lineno, check_trace_obj.tb_frame.f_globals) * except: # <<<<<<<<<<<<<< @@ -9901,21 +10088,21 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.handle_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_10, &__pyx_t_14) < 0) __PYX_ERR(0, 414, __pyx_L42_except_error) + if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_10, &__pyx_t_14) < 0) __PYX_ERR(0, 419, __pyx_L42_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_10); __Pyx_GOTREF(__pyx_t_14); - /* "_pydevd_bundle/pydevd_cython.pyx":416 + /* "_pydevd_bundle/pydevd_cython.pyx":421 * except: * #Jython 2.1 * line = linecache.getline(filename, exc_lineno) # <<<<<<<<<<<<<< * * if IGNORE_EXCEPTION_TAG.match(line) is not None: */ - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_linecache); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L42_except_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_linecache); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 421, __pyx_L42_except_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_getline); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 416, __pyx_L42_except_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_getline); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 421, __pyx_L42_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; @@ -9933,7 +10120,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_filename, __pyx_v_exc_lineno}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L42_except_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 421, __pyx_L42_except_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -9941,13 +10128,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_filename, __pyx_v_exc_lineno}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L42_except_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 421, __pyx_L42_except_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_16 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 416, __pyx_L42_except_error) + __pyx_t_16 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 421, __pyx_L42_except_error) __Pyx_GOTREF(__pyx_t_16); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -9958,7 +10145,7 @@ __Pyx_INCREF(__pyx_v_exc_lineno); __Pyx_GIVEREF(__pyx_v_exc_lineno); PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_15, __pyx_v_exc_lineno); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L42_except_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 421, __pyx_L42_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } @@ -9972,7 +10159,7 @@ } __pyx_L42_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":412 + /* "_pydevd_bundle/pydevd_cython.pyx":417 * * if exc_lineno not in merged: #Note: check on merged but update lines_ignored. * try: # <<<<<<<<<<<<<< @@ -9992,16 +10179,16 @@ __pyx_L47_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":418 + /* "_pydevd_bundle/pydevd_cython.pyx":423 * line = linecache.getline(filename, exc_lineno) * * if IGNORE_EXCEPTION_TAG.match(line) is not None: # <<<<<<<<<<<<<< * lines_ignored[exc_lineno] = 1 * return */ - __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_IGNORE_EXCEPTION_TAG); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 418, __pyx_L4_error) + __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_IGNORE_EXCEPTION_TAG); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_match); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 418, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_match); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; @@ -10015,13 +10202,13 @@ } } if (!__pyx_t_10) { - __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_line); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 418, __pyx_L4_error) + __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_line); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_14); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_line}; - __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 418, __pyx_L4_error) + __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 423, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_14); } else @@ -10029,19 +10216,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_line}; - __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 418, __pyx_L4_error) + __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 423, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_14); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 418, __pyx_L4_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __pyx_t_10 = NULL; __Pyx_INCREF(__pyx_v_line); __Pyx_GIVEREF(__pyx_v_line); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_line); - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 418, __pyx_L4_error) + __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 423, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } @@ -10052,16 +10239,16 @@ __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":419 + /* "_pydevd_bundle/pydevd_cython.pyx":424 * * if IGNORE_EXCEPTION_TAG.match(line) is not None: * lines_ignored[exc_lineno] = 1 # <<<<<<<<<<<<<< * return * else: */ - if (unlikely(PyObject_SetItem(__pyx_v_lines_ignored, __pyx_v_exc_lineno, __pyx_int_1) < 0)) __PYX_ERR(0, 419, __pyx_L4_error) + if (unlikely(PyObject_SetItem(__pyx_v_lines_ignored, __pyx_v_exc_lineno, __pyx_int_1) < 0)) __PYX_ERR(0, 424, __pyx_L4_error) - /* "_pydevd_bundle/pydevd_cython.pyx":420 + /* "_pydevd_bundle/pydevd_cython.pyx":425 * if IGNORE_EXCEPTION_TAG.match(line) is not None: * lines_ignored[exc_lineno] = 1 * return # <<<<<<<<<<<<<< @@ -10073,7 +10260,7 @@ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":418 + /* "_pydevd_bundle/pydevd_cython.pyx":423 * line = linecache.getline(filename, exc_lineno) * * if IGNORE_EXCEPTION_TAG.match(line) is not None: # <<<<<<<<<<<<<< @@ -10082,7 +10269,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":423 + /* "_pydevd_bundle/pydevd_cython.pyx":428 * else: * #Put in the cache saying not to ignore * lines_ignored[exc_lineno] = 0 # <<<<<<<<<<<<<< @@ -10090,10 +10277,10 @@ * #Ok, dict has it already cached, so, let's check it... */ /*else*/ { - if (unlikely(PyObject_SetItem(__pyx_v_lines_ignored, __pyx_v_exc_lineno, __pyx_int_0) < 0)) __PYX_ERR(0, 423, __pyx_L4_error) + if (unlikely(PyObject_SetItem(__pyx_v_lines_ignored, __pyx_v_exc_lineno, __pyx_int_0) < 0)) __PYX_ERR(0, 428, __pyx_L4_error) } - /* "_pydevd_bundle/pydevd_cython.pyx":411 + /* "_pydevd_bundle/pydevd_cython.pyx":416 * # print ('merged', merged, 'curr', exc_lineno) * * if exc_lineno not in merged: #Note: check on merged but update lines_ignored. # <<<<<<<<<<<<<< @@ -10103,7 +10290,7 @@ goto __pyx_L39; } - /* "_pydevd_bundle/pydevd_cython.pyx":426 + /* "_pydevd_bundle/pydevd_cython.pyx":431 * else: * #Ok, dict has it already cached, so, let's check it... * if merged.get(exc_lineno, 0): # <<<<<<<<<<<<<< @@ -10111,7 +10298,7 @@ * */ /*else*/ { - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_get); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 426, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_merged, __pyx_n_s_get); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 431, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = NULL; __pyx_t_15 = 0; @@ -10128,7 +10315,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_exc_lineno, __pyx_int_0}; - __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 426, __pyx_L4_error) + __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 431, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_14); } else @@ -10136,13 +10323,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_exc_lineno, __pyx_int_0}; - __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 426, __pyx_L4_error) + __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 431, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_14); } else #endif { - __pyx_t_10 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 426, __pyx_L4_error) + __pyx_t_10 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 431, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -10153,16 +10340,16 @@ __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_15, __pyx_int_0); - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 426, __pyx_L4_error) + __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 431, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 426, __pyx_L4_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 431, __pyx_L4_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_3) { - /* "_pydevd_bundle/pydevd_cython.pyx":427 + /* "_pydevd_bundle/pydevd_cython.pyx":432 * #Ok, dict has it already cached, so, let's check it... * if merged.get(exc_lineno, 0): * return # <<<<<<<<<<<<<< @@ -10174,7 +10361,7 @@ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":426 + /* "_pydevd_bundle/pydevd_cython.pyx":431 * else: * #Ok, dict has it already cached, so, let's check it... * if merged.get(exc_lineno, 0): # <<<<<<<<<<<<<< @@ -10185,7 +10372,7 @@ } __pyx_L39:; - /* "_pydevd_bundle/pydevd_cython.pyx":369 + /* "_pydevd_bundle/pydevd_cython.pyx":374 * * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception: * for check_trace_obj in (initial_trace_obj, trace_obj): # <<<<<<<<<<<<<< @@ -10195,7 +10382,7 @@ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":368 + /* "_pydevd_bundle/pydevd_cython.pyx":373 * * * if main_debugger.ignore_exceptions_thrown_in_lines_with_ignore_exception: # <<<<<<<<<<<<<< @@ -10204,7 +10391,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":430 + /* "_pydevd_bundle/pydevd_cython.pyx":435 * * * thread = self._args[3] # <<<<<<<<<<<<<< @@ -10213,14 +10400,14 @@ */ if (unlikely(__pyx_v_self->_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 430, __pyx_L4_error) + __PYX_ERR(0, 435, __pyx_L4_error) } - __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 430, __pyx_L4_error) + __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_self->_args, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 435, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_thread = __pyx_t_5; __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":432 + /* "_pydevd_bundle/pydevd_cython.pyx":437 * thread = self._args[3] * * try: # <<<<<<<<<<<<<< @@ -10236,49 +10423,43 @@ __Pyx_XGOTREF(__pyx_t_11); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":433 + /* "_pydevd_bundle/pydevd_cython.pyx":438 * * try: * frame_id_to_frame = {} # <<<<<<<<<<<<<< * frame_id_to_frame[id(frame)] = frame * f = trace_obj.tb_frame */ - __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 433, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 438, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_v_frame_id_to_frame = __pyx_t_5; + __pyx_v_frame_id_to_frame = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":434 + /* "_pydevd_bundle/pydevd_cython.pyx":439 * try: * frame_id_to_frame = {} * frame_id_to_frame[id(frame)] = frame # <<<<<<<<<<<<<< * f = trace_obj.tb_frame * while f is not None: */ - __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 434, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 439, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_INCREF(__pyx_v_frame); - __Pyx_GIVEREF(__pyx_v_frame); - PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_frame); - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_id, __pyx_t_5, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 434, __pyx_L52_error) - __Pyx_GOTREF(__pyx_t_14); + if (unlikely(PyDict_SetItem(__pyx_v_frame_id_to_frame, __pyx_t_5, __pyx_v_frame) < 0)) __PYX_ERR(0, 439, __pyx_L52_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(PyObject_SetItem(__pyx_v_frame_id_to_frame, __pyx_t_14, __pyx_v_frame) < 0)) __PYX_ERR(0, 434, __pyx_L52_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":435 + /* "_pydevd_bundle/pydevd_cython.pyx":440 * frame_id_to_frame = {} * frame_id_to_frame[id(frame)] = frame * f = trace_obj.tb_frame # <<<<<<<<<<<<<< * while f is not None: * frame_id_to_frame[id(f)] = f */ - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 435, __pyx_L52_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_v_f = __pyx_t_14; - __pyx_t_14 = 0; + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_trace_obj, __pyx_n_s_tb_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 440, __pyx_L52_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_f = __pyx_t_5; + __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":436 + /* "_pydevd_bundle/pydevd_cython.pyx":441 * frame_id_to_frame[id(frame)] = frame * f = trace_obj.tb_frame * while f is not None: # <<<<<<<<<<<<<< @@ -10290,38 +10471,32 @@ __pyx_t_2 = (__pyx_t_3 != 0); if (!__pyx_t_2) break; - /* "_pydevd_bundle/pydevd_cython.pyx":437 + /* "_pydevd_bundle/pydevd_cython.pyx":442 * f = trace_obj.tb_frame * while f is not None: * frame_id_to_frame[id(f)] = f # <<<<<<<<<<<<<< * f = f.f_back * f = None */ - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 437, __pyx_L52_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_INCREF(__pyx_v_f); - __Pyx_GIVEREF(__pyx_v_f); - PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_f); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_id, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 437, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_f); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 442, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(PyObject_SetItem(__pyx_v_frame_id_to_frame, __pyx_t_5, __pyx_v_f) < 0)) __PYX_ERR(0, 437, __pyx_L52_error) + if (unlikely(PyDict_SetItem(__pyx_v_frame_id_to_frame, __pyx_t_5, __pyx_v_f) < 0)) __PYX_ERR(0, 442, __pyx_L52_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":438 + /* "_pydevd_bundle/pydevd_cython.pyx":443 * while f is not None: * frame_id_to_frame[id(f)] = f * f = f.f_back # <<<<<<<<<<<<<< * f = None * */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_f_back); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 438, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s_f_back); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 443, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF_SET(__pyx_v_f, __pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":439 + /* "_pydevd_bundle/pydevd_cython.pyx":444 * frame_id_to_frame[id(f)] = f * f = f.f_back * f = None # <<<<<<<<<<<<<< @@ -10331,14 +10506,14 @@ __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_f, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":441 + /* "_pydevd_bundle/pydevd_cython.pyx":446 * f = None * * thread_id = get_thread_id(thread) # <<<<<<<<<<<<<< * pydevd_vars.add_additional_frame_by_id(thread_id, frame_id_to_frame) * try: */ - __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_thread_id); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 441, __pyx_L52_error) + __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_thread_id); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 446, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { @@ -10351,13 +10526,13 @@ } } if (!__pyx_t_8) { - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_thread); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 441, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_thread); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_thread}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 441, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L52_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -10365,19 +10540,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_thread}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 441, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L52_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 441, __pyx_L52_error) + __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 446, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; __Pyx_INCREF(__pyx_v_thread); __Pyx_GIVEREF(__pyx_v_thread); PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_thread); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 441, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -10386,16 +10561,16 @@ __pyx_v_thread_id = __pyx_t_5; __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":442 + /* "_pydevd_bundle/pydevd_cython.pyx":447 * * thread_id = get_thread_id(thread) * pydevd_vars.add_additional_frame_by_id(thread_id, frame_id_to_frame) # <<<<<<<<<<<<<< * try: * main_debugger.send_caught_exception_stack(thread, arg, id(frame)) */ - __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 442, __pyx_L52_error) + __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 447, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_14); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_add_additional_frame_by_id); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 442, __pyx_L52_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_add_additional_frame_by_id); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 447, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; @@ -10413,7 +10588,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_v_thread_id, __pyx_v_frame_id_to_frame}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 442, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 447, __pyx_L52_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -10421,13 +10596,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_v_thread_id, __pyx_v_frame_id_to_frame}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 442, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 447, __pyx_L52_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 442, __pyx_L52_error) + __pyx_t_8 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 447, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_14) { __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_14); __pyx_t_14 = NULL; @@ -10438,14 +10613,14 @@ __Pyx_INCREF(__pyx_v_frame_id_to_frame); __Pyx_GIVEREF(__pyx_v_frame_id_to_frame); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_15, __pyx_v_frame_id_to_frame); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 442, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 447, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":443 + /* "_pydevd_bundle/pydevd_cython.pyx":448 * thread_id = get_thread_id(thread) * pydevd_vars.add_additional_frame_by_id(thread_id, frame_id_to_frame) * try: # <<<<<<<<<<<<<< @@ -10454,30 +10629,24 @@ */ /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":444 + /* "_pydevd_bundle/pydevd_cython.pyx":449 * pydevd_vars.add_additional_frame_by_id(thread_id, frame_id_to_frame) * try: * main_debugger.send_caught_exception_stack(thread, arg, id(frame)) # <<<<<<<<<<<<<< * self.set_suspend(thread, CMD_STEP_CAUGHT_EXCEPTION) * self.do_wait_suspend(thread, frame, event, arg) */ - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_send_caught_exception_stack); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 444, __pyx_L61_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_send_caught_exception_stack); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 449, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 444, __pyx_L61_error) + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 449, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_8); - __Pyx_INCREF(__pyx_v_frame); - __Pyx_GIVEREF(__pyx_v_frame); - PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_frame); - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_id, __pyx_t_8, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 444, __pyx_L61_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = NULL; + __pyx_t_14 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); - if (likely(__pyx_t_8)) { + __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_15 = 1; @@ -10485,27 +10654,27 @@ } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { - PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_thread, __pyx_v_arg, __pyx_t_14}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 444, __pyx_L61_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_v_thread, __pyx_v_arg, __pyx_t_8}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 449, __pyx_L61_error) + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { - PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_thread, __pyx_v_arg, __pyx_t_14}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 444, __pyx_L61_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_v_thread, __pyx_v_arg, __pyx_t_8}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 3+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 449, __pyx_L61_error) + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(3+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L61_error) + __pyx_t_1 = PyTuple_New(3+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 449, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_1); - if (__pyx_t_8) { - __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; + if (__pyx_t_14) { + __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_14); __pyx_t_14 = NULL; } __Pyx_INCREF(__pyx_v_thread); __Pyx_GIVEREF(__pyx_v_thread); @@ -10513,34 +10682,34 @@ __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_15, __pyx_v_arg); - __Pyx_GIVEREF(__pyx_t_14); - PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_15, __pyx_t_14); - __pyx_t_14 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 444, __pyx_L61_error) + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_15, __pyx_t_8); + __pyx_t_8 = 0; + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 449, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":445 + /* "_pydevd_bundle/pydevd_cython.pyx":450 * try: * main_debugger.send_caught_exception_stack(thread, arg, id(frame)) * self.set_suspend(thread, CMD_STEP_CAUGHT_EXCEPTION) # <<<<<<<<<<<<<< * self.do_wait_suspend(thread, frame, event, arg) * main_debugger.send_caught_exception_stack_proceeded(thread) */ - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 445, __pyx_L61_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 450, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 445, __pyx_L61_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 450, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_14 = NULL; + __pyx_t_8 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_10); - if (likely(__pyx_t_14)) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_14); + __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_15 = 1; @@ -10548,57 +10717,57 @@ } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { - PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_v_thread, __pyx_t_1}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 445, __pyx_L61_error) - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_thread, __pyx_t_1}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L61_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { - PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_v_thread, __pyx_t_1}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 445, __pyx_L61_error) - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_thread, __pyx_t_1}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L61_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 445, __pyx_L61_error) - __Pyx_GOTREF(__pyx_t_8); - if (__pyx_t_14) { - __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_14); __pyx_t_14 = NULL; + __pyx_t_14 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 450, __pyx_L61_error) + __Pyx_GOTREF(__pyx_t_14); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_v_thread); __Pyx_GIVEREF(__pyx_v_thread); - PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_15, __pyx_v_thread); + PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_15, __pyx_v_thread); __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_15, __pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_15, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 445, __pyx_L61_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":446 + /* "_pydevd_bundle/pydevd_cython.pyx":451 * main_debugger.send_caught_exception_stack(thread, arg, id(frame)) * self.set_suspend(thread, CMD_STEP_CAUGHT_EXCEPTION) * self.do_wait_suspend(thread, frame, event, arg) # <<<<<<<<<<<<<< * main_debugger.send_caught_exception_stack_proceeded(thread) * */ - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 446, __pyx_L61_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 451, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = NULL; + __pyx_t_14 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); - if (likely(__pyx_t_8)) { + __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_10); + if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_15 = 1; @@ -10606,25 +10775,25 @@ } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { - PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 4+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L61_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + PyObject *__pyx_temp[5] = {__pyx_t_14, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 4+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 451, __pyx_L61_error) + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { - PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 4+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L61_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + PyObject *__pyx_temp[5] = {__pyx_t_14, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 4+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 451, __pyx_L61_error) + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_1 = PyTuple_New(4+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 446, __pyx_L61_error) + __pyx_t_1 = PyTuple_New(4+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 451, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_1); - if (__pyx_t_8) { - __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; + if (__pyx_t_14) { + __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_14); __pyx_t_14 = NULL; } __Pyx_INCREF(__pyx_v_thread); __Pyx_GIVEREF(__pyx_v_thread); @@ -10638,21 +10807,21 @@ __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_15, __pyx_v_arg); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L61_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 451, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":447 + /* "_pydevd_bundle/pydevd_cython.pyx":452 * self.set_suspend(thread, CMD_STEP_CAUGHT_EXCEPTION) * self.do_wait_suspend(thread, frame, event, arg) * main_debugger.send_caught_exception_stack_proceeded(thread) # <<<<<<<<<<<<<< * * finally: */ - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_send_caught_exception_stack_proc); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 447, __pyx_L61_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_send_caught_exception_stack_proc); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 452, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { @@ -10665,13 +10834,13 @@ } } if (!__pyx_t_1) { - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_thread); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 447, __pyx_L61_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_thread); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 452, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_5); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_thread}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 447, __pyx_L61_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 452, __pyx_L61_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -10679,28 +10848,28 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_thread}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 447, __pyx_L61_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 452, __pyx_L61_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 447, __pyx_L61_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL; + __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 452, __pyx_L61_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_thread); __Pyx_GIVEREF(__pyx_v_thread); - PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_thread); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 447, __pyx_L61_error) + PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_v_thread); + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 452, __pyx_L61_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":450 + /* "_pydevd_bundle/pydevd_cython.pyx":455 * * finally: * pydevd_vars.remove_additional_frame_by_id(thread_id) # <<<<<<<<<<<<<< @@ -10709,54 +10878,54 @@ */ /*finally:*/ { /*normal exit:*/{ - __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 450, __pyx_L52_error) + __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 455, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_remove_additional_frame_by_id); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 450, __pyx_L52_error) - __Pyx_GOTREF(__pyx_t_8); + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_remove_additional_frame_by_id); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 455, __pyx_L52_error) + __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); + __Pyx_DECREF_SET(__pyx_t_14, function); } } if (!__pyx_t_10) { - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_thread_id); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_thread_id); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); } else { #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_8)) { + if (PyFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_thread_id}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L52_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { + if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_v_thread_id}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L52_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 450, __pyx_L52_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 455, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __pyx_t_10 = NULL; __Pyx_INCREF(__pyx_v_thread_id); __Pyx_GIVEREF(__pyx_v_thread_id); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_thread_id); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L52_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L52_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L62; } @@ -10768,9 +10937,9 @@ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); @@ -10783,49 +10952,49 @@ __Pyx_XGOTREF(__pyx_t_24); __pyx_t_15 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename; { - __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 450, __pyx_L64_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_remove_additional_frame_by_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 450, __pyx_L64_error) + __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 455, __pyx_L64_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_remove_additional_frame_by_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 455, __pyx_L64_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_8)) { + __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } - if (!__pyx_t_8) { - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_thread_id); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L64_error) + if (!__pyx_t_14) { + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_thread_id); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L64_error) __Pyx_GOTREF(__pyx_t_5); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_thread_id}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L64_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + PyObject *__pyx_temp[2] = {__pyx_t_14, __pyx_v_thread_id}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L64_error) + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_thread_id}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L64_error) - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + PyObject *__pyx_temp[2] = {__pyx_t_14, __pyx_v_thread_id}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L64_error) + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 450, __pyx_L64_error) + __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 455, __pyx_L64_error) __Pyx_GOTREF(__pyx_t_10); - __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_14); __pyx_t_14 = NULL; __Pyx_INCREF(__pyx_v_thread_id); __Pyx_GIVEREF(__pyx_v_thread_id); PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_thread_id); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L64_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L64_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -10862,7 +11031,7 @@ __pyx_L62:; } - /* "_pydevd_bundle/pydevd_cython.pyx":432 + /* "_pydevd_bundle/pydevd_cython.pyx":437 * thread = self._args[3] * * try: # <<<<<<<<<<<<<< @@ -10878,13 +11047,13 @@ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":451 + /* "_pydevd_bundle/pydevd_cython.pyx":456 * finally: * pydevd_vars.remove_additional_frame_by_id(thread_id) * except: # <<<<<<<<<<<<<< @@ -10893,42 +11062,42 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.handle_exception", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_10) < 0) __PYX_ERR(0, 451, __pyx_L54_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_10) < 0) __PYX_ERR(0, 456, __pyx_L54_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_10); - /* "_pydevd_bundle/pydevd_cython.pyx":452 + /* "_pydevd_bundle/pydevd_cython.pyx":457 * pydevd_vars.remove_additional_frame_by_id(thread_id) * except: * traceback.print_exc() # <<<<<<<<<<<<<< * * main_debugger.set_trace_for_frame_and_parents(frame) */ - __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 452, __pyx_L54_except_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 452, __pyx_L54_except_error) + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 457, __pyx_L54_except_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 457, __pyx_L54_except_error) __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_14 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_9); - if (likely(__pyx_t_14)) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); + if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_14); + __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } - if (__pyx_t_14) { - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 452, __pyx_L54_except_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__pyx_t_8) { + __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 457, __pyx_L54_except_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { - __pyx_t_8 = __Pyx_PyObject_CallNoArg(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 452, __pyx_L54_except_error) + __pyx_t_14 = __Pyx_PyObject_CallNoArg(__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 457, __pyx_L54_except_error) } - __Pyx_GOTREF(__pyx_t_8); + __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -10936,7 +11105,7 @@ } __pyx_L54_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":432 + /* "_pydevd_bundle/pydevd_cython.pyx":437 * thread = self._args[3] * * try: # <<<<<<<<<<<<<< @@ -10956,14 +11125,14 @@ __pyx_L57_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":454 + /* "_pydevd_bundle/pydevd_cython.pyx":459 * traceback.print_exc() * * main_debugger.set_trace_for_frame_and_parents(frame) # <<<<<<<<<<<<<< * finally: * #Clear some local variables... */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_set_trace_for_frame_and_parents); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 454, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_set_trace_for_frame_and_parents); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 459, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -10976,13 +11145,13 @@ } } if (!__pyx_t_5) { - __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_frame); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 454, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_frame); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 459, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_10); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_frame}; - __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 454, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 459, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_10); } else @@ -10990,28 +11159,28 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_frame}; - __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 454, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 459, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_10); } else #endif { - __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 454, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; + __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 459, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); - PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_frame); - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 454, __pyx_L4_error) + PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_v_frame); + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_14, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 459, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":457 + /* "_pydevd_bundle/pydevd_cython.pyx":462 * finally: * #Clear some local variables... * trace_obj = None # <<<<<<<<<<<<<< @@ -11023,7 +11192,7 @@ __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":458 + /* "_pydevd_bundle/pydevd_cython.pyx":463 * #Clear some local variables... * trace_obj = None * initial_trace_obj = None # <<<<<<<<<<<<<< @@ -11033,7 +11202,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_initial_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":459 + /* "_pydevd_bundle/pydevd_cython.pyx":464 * trace_obj = None * initial_trace_obj = None * check_trace_obj = None # <<<<<<<<<<<<<< @@ -11043,7 +11212,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_check_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":460 + /* "_pydevd_bundle/pydevd_cython.pyx":465 * initial_trace_obj = None * check_trace_obj = None * f = None # <<<<<<<<<<<<<< @@ -11053,7 +11222,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_f, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":461 + /* "_pydevd_bundle/pydevd_cython.pyx":466 * check_trace_obj = None * f = None * frame_id_to_frame = None # <<<<<<<<<<<<<< @@ -11061,9 +11230,9 @@ * thread = None */ __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v_frame_id_to_frame, Py_None); + __Pyx_XDECREF_SET(__pyx_v_frame_id_to_frame, ((PyObject*)Py_None)); - /* "_pydevd_bundle/pydevd_cython.pyx":462 + /* "_pydevd_bundle/pydevd_cython.pyx":467 * f = None * frame_id_to_frame = None * main_debugger = None # <<<<<<<<<<<<<< @@ -11073,7 +11242,7 @@ __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_main_debugger, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":463 + /* "_pydevd_bundle/pydevd_cython.pyx":468 * frame_id_to_frame = None * main_debugger = None * thread = None # <<<<<<<<<<<<<< @@ -11091,10 +11260,10 @@ __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_23, &__pyx_t_22); @@ -11108,7 +11277,7 @@ __pyx_t_17 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_25 = __pyx_filename; { - /* "_pydevd_bundle/pydevd_cython.pyx":457 + /* "_pydevd_bundle/pydevd_cython.pyx":462 * finally: * #Clear some local variables... * trace_obj = None # <<<<<<<<<<<<<< @@ -11118,7 +11287,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":458 + /* "_pydevd_bundle/pydevd_cython.pyx":463 * #Clear some local variables... * trace_obj = None * initial_trace_obj = None # <<<<<<<<<<<<<< @@ -11128,7 +11297,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_initial_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":459 + /* "_pydevd_bundle/pydevd_cython.pyx":464 * trace_obj = None * initial_trace_obj = None * check_trace_obj = None # <<<<<<<<<<<<<< @@ -11138,7 +11307,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_check_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":460 + /* "_pydevd_bundle/pydevd_cython.pyx":465 * initial_trace_obj = None * check_trace_obj = None * f = None # <<<<<<<<<<<<<< @@ -11148,7 +11317,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_f, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":461 + /* "_pydevd_bundle/pydevd_cython.pyx":466 * check_trace_obj = None * f = None * frame_id_to_frame = None # <<<<<<<<<<<<<< @@ -11156,9 +11325,9 @@ * thread = None */ __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v_frame_id_to_frame, Py_None); + __Pyx_XDECREF_SET(__pyx_v_frame_id_to_frame, ((PyObject*)Py_None)); - /* "_pydevd_bundle/pydevd_cython.pyx":462 + /* "_pydevd_bundle/pydevd_cython.pyx":467 * f = None * frame_id_to_frame = None * main_debugger = None # <<<<<<<<<<<<<< @@ -11168,7 +11337,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_main_debugger, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":463 + /* "_pydevd_bundle/pydevd_cython.pyx":468 * frame_id_to_frame = None * main_debugger = None * thread = None # <<<<<<<<<<<<<< @@ -11196,7 +11365,7 @@ __pyx_t_22 = __pyx_r; __pyx_r = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":457 + /* "_pydevd_bundle/pydevd_cython.pyx":462 * finally: * #Clear some local variables... * trace_obj = None # <<<<<<<<<<<<<< @@ -11206,7 +11375,7 @@ __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":458 + /* "_pydevd_bundle/pydevd_cython.pyx":463 * #Clear some local variables... * trace_obj = None * initial_trace_obj = None # <<<<<<<<<<<<<< @@ -11216,7 +11385,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_initial_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":459 + /* "_pydevd_bundle/pydevd_cython.pyx":464 * trace_obj = None * initial_trace_obj = None * check_trace_obj = None # <<<<<<<<<<<<<< @@ -11226,7 +11395,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_check_trace_obj, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":460 + /* "_pydevd_bundle/pydevd_cython.pyx":465 * initial_trace_obj = None * check_trace_obj = None * f = None # <<<<<<<<<<<<<< @@ -11236,7 +11405,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_f, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":461 + /* "_pydevd_bundle/pydevd_cython.pyx":466 * check_trace_obj = None * f = None * frame_id_to_frame = None # <<<<<<<<<<<<<< @@ -11244,9 +11413,9 @@ * thread = None */ __Pyx_INCREF(Py_None); - __Pyx_XDECREF_SET(__pyx_v_frame_id_to_frame, Py_None); + __Pyx_XDECREF_SET(__pyx_v_frame_id_to_frame, ((PyObject*)Py_None)); - /* "_pydevd_bundle/pydevd_cython.pyx":462 + /* "_pydevd_bundle/pydevd_cython.pyx":467 * f = None * frame_id_to_frame = None * main_debugger = None # <<<<<<<<<<<<<< @@ -11256,7 +11425,7 @@ __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_main_debugger, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":463 + /* "_pydevd_bundle/pydevd_cython.pyx":468 * frame_id_to_frame = None * main_debugger = None * thread = None # <<<<<<<<<<<<<< @@ -11272,7 +11441,7 @@ __pyx_L5:; } - /* "_pydevd_bundle/pydevd_cython.pyx":344 + /* "_pydevd_bundle/pydevd_cython.pyx":349 * return flag, frame * * def handle_exception(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -11317,7 +11486,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":465 +/* "_pydevd_bundle/pydevd_cython.pyx":470 * thread = None * * def get_func_name(self, frame): # <<<<<<<<<<<<<< @@ -11358,31 +11527,31 @@ PyObject *__pyx_t_12 = NULL; __Pyx_RefNannySetupContext("get_func_name", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":466 + /* "_pydevd_bundle/pydevd_cython.pyx":471 * * def get_func_name(self, frame): * code_obj = frame.f_code # <<<<<<<<<<<<<< * func_name = code_obj.co_name * try: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 466, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_code_obj = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":467 + /* "_pydevd_bundle/pydevd_cython.pyx":472 * def get_func_name(self, frame): * code_obj = frame.f_code * func_name = code_obj.co_name # <<<<<<<<<<<<<< * try: * cls_name = get_clsname_for_code(code_obj, frame) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_code_obj, __pyx_n_s_co_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_code_obj, __pyx_n_s_co_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_func_name = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":468 + /* "_pydevd_bundle/pydevd_cython.pyx":473 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -11398,14 +11567,14 @@ __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":469 + /* "_pydevd_bundle/pydevd_cython.pyx":474 * func_name = code_obj.co_name * try: * cls_name = get_clsname_for_code(code_obj, frame) # <<<<<<<<<<<<<< * if cls_name is not None: * return "%s.%s" % (cls_name, func_name) */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 469, __pyx_L3_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 474, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; @@ -11422,7 +11591,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_code_obj, __pyx_v_frame}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 469, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 474, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -11430,13 +11599,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_code_obj, __pyx_v_frame}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 469, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 474, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 469, __pyx_L3_error) + __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 474, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -11447,7 +11616,7 @@ __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_frame); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 469, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 474, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -11455,7 +11624,7 @@ __pyx_v_cls_name = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":470 + /* "_pydevd_bundle/pydevd_cython.pyx":475 * try: * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: # <<<<<<<<<<<<<< @@ -11466,7 +11635,7 @@ __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":471 + /* "_pydevd_bundle/pydevd_cython.pyx":476 * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: * return "%s.%s" % (cls_name, func_name) # <<<<<<<<<<<<<< @@ -11474,7 +11643,7 @@ * return func_name */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 471, __pyx_L3_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 476, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_cls_name); __Pyx_GIVEREF(__pyx_v_cls_name); @@ -11482,14 +11651,14 @@ __Pyx_INCREF(__pyx_v_func_name); __Pyx_GIVEREF(__pyx_v_func_name); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_func_name); - __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 471, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 476, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":470 + /* "_pydevd_bundle/pydevd_cython.pyx":475 * try: * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: # <<<<<<<<<<<<<< @@ -11498,7 +11667,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":473 + /* "_pydevd_bundle/pydevd_cython.pyx":478 * return "%s.%s" % (cls_name, func_name) * else: * return func_name # <<<<<<<<<<<<<< @@ -11512,7 +11681,7 @@ goto __pyx_L7_try_return; } - /* "_pydevd_bundle/pydevd_cython.pyx":468 + /* "_pydevd_bundle/pydevd_cython.pyx":473 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -11526,7 +11695,7 @@ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":474 + /* "_pydevd_bundle/pydevd_cython.pyx":479 * else: * return func_name * except: # <<<<<<<<<<<<<< @@ -11535,21 +11704,21 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.get_func_name", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 474, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); - /* "_pydevd_bundle/pydevd_cython.pyx":475 + /* "_pydevd_bundle/pydevd_cython.pyx":480 * return func_name * except: * traceback.print_exc() # <<<<<<<<<<<<<< * return func_name * */ - __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 475, __pyx_L5_except_error) + __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 480, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 475, __pyx_L5_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 480, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; @@ -11563,16 +11732,16 @@ } } if (__pyx_t_11) { - __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 475, __pyx_L5_except_error) + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 480, __pyx_L5_except_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else { - __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 475, __pyx_L5_except_error) + __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 480, __pyx_L5_except_error) } __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":476 + /* "_pydevd_bundle/pydevd_cython.pyx":481 * except: * traceback.print_exc() * return func_name # <<<<<<<<<<<<<< @@ -11589,7 +11758,7 @@ } __pyx_L5_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":468 + /* "_pydevd_bundle/pydevd_cython.pyx":473 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -11615,7 +11784,7 @@ goto __pyx_L0; } - /* "_pydevd_bundle/pydevd_cython.pyx":465 + /* "_pydevd_bundle/pydevd_cython.pyx":470 * thread = None * * def get_func_name(self, frame): # <<<<<<<<<<<<<< @@ -11642,7 +11811,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":478 +/* "_pydevd_bundle/pydevd_cython.pyx":483 * return func_name * * def manage_return_values(self, main_debugger, frame, event, arg): # <<<<<<<<<<<<<< @@ -11681,29 +11850,29 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_main_debugger)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_main_debugger)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 1); __PYX_ERR(0, 478, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 1); __PYX_ERR(0, 483, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 2); __PYX_ERR(0, 478, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 2); __PYX_ERR(0, 483, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: - if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 3); __PYX_ERR(0, 478, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, 3); __PYX_ERR(0, 483, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "manage_return_values") < 0)) __PYX_ERR(0, 478, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "manage_return_values") < 0)) __PYX_ERR(0, 483, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -11720,7 +11889,7 @@ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 478, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("manage_return_values", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 483, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.manage_return_values", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -11733,7 +11902,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":480 +/* "_pydevd_bundle/pydevd_cython.pyx":485 * def manage_return_values(self, main_debugger, frame, event, arg): * * def get_func_name(frame): # <<<<<<<<<<<<<< @@ -11775,31 +11944,31 @@ PyObject *__pyx_t_12 = NULL; __Pyx_RefNannySetupContext("get_func_name", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":481 + /* "_pydevd_bundle/pydevd_cython.pyx":486 * * def get_func_name(frame): * code_obj = frame.f_code # <<<<<<<<<<<<<< * func_name = code_obj.co_name * try: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 481, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_code_obj = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":482 + /* "_pydevd_bundle/pydevd_cython.pyx":487 * def get_func_name(frame): * code_obj = frame.f_code * func_name = code_obj.co_name # <<<<<<<<<<<<<< * try: * cls_name = get_clsname_for_code(code_obj, frame) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_code_obj, __pyx_n_s_co_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 482, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_code_obj, __pyx_n_s_co_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_func_name = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":483 + /* "_pydevd_bundle/pydevd_cython.pyx":488 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -11815,14 +11984,14 @@ __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":484 + /* "_pydevd_bundle/pydevd_cython.pyx":489 * func_name = code_obj.co_name * try: * cls_name = get_clsname_for_code(code_obj, frame) # <<<<<<<<<<<<<< * if cls_name is not None: * return "%s.%s" % (cls_name, func_name) */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 484, __pyx_L3_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 489, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; @@ -11839,7 +12008,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_code_obj, __pyx_v_frame}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 484, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 489, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -11847,13 +12016,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_code_obj, __pyx_v_frame}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 484, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 489, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 484, __pyx_L3_error) + __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 489, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; @@ -11864,7 +12033,7 @@ __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_frame); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 484, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 489, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -11872,7 +12041,7 @@ __pyx_v_cls_name = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":485 + /* "_pydevd_bundle/pydevd_cython.pyx":490 * try: * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: # <<<<<<<<<<<<<< @@ -11883,7 +12052,7 @@ __pyx_t_10 = (__pyx_t_9 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":486 + /* "_pydevd_bundle/pydevd_cython.pyx":491 * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: * return "%s.%s" % (cls_name, func_name) # <<<<<<<<<<<<<< @@ -11891,7 +12060,7 @@ * return func_name */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 486, __pyx_L3_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 491, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_cls_name); __Pyx_GIVEREF(__pyx_v_cls_name); @@ -11899,14 +12068,14 @@ __Pyx_INCREF(__pyx_v_func_name); __Pyx_GIVEREF(__pyx_v_func_name); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_func_name); - __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 486, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 491, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":485 + /* "_pydevd_bundle/pydevd_cython.pyx":490 * try: * cls_name = get_clsname_for_code(code_obj, frame) * if cls_name is not None: # <<<<<<<<<<<<<< @@ -11915,7 +12084,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":488 + /* "_pydevd_bundle/pydevd_cython.pyx":493 * return "%s.%s" % (cls_name, func_name) * else: * return func_name # <<<<<<<<<<<<<< @@ -11929,7 +12098,7 @@ goto __pyx_L7_try_return; } - /* "_pydevd_bundle/pydevd_cython.pyx":483 + /* "_pydevd_bundle/pydevd_cython.pyx":488 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -11943,7 +12112,7 @@ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":489 + /* "_pydevd_bundle/pydevd_cython.pyx":494 * else: * return func_name * except: # <<<<<<<<<<<<<< @@ -11952,21 +12121,21 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.manage_return_values.get_func_name", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 489, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_8) < 0) __PYX_ERR(0, 494, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); - /* "_pydevd_bundle/pydevd_cython.pyx":490 + /* "_pydevd_bundle/pydevd_cython.pyx":495 * return func_name * except: * traceback.print_exc() # <<<<<<<<<<<<<< * return func_name * */ - __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 490, __pyx_L5_except_error) + __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 495, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 490, __pyx_L5_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 495, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; @@ -11980,16 +12149,16 @@ } } if (__pyx_t_11) { - __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 490, __pyx_L5_except_error) + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 495, __pyx_L5_except_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else { - __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 490, __pyx_L5_except_error) + __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 495, __pyx_L5_except_error) } __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":491 + /* "_pydevd_bundle/pydevd_cython.pyx":496 * except: * traceback.print_exc() * return func_name # <<<<<<<<<<<<<< @@ -12006,7 +12175,7 @@ } __pyx_L5_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":483 + /* "_pydevd_bundle/pydevd_cython.pyx":488 * code_obj = frame.f_code * func_name = code_obj.co_name * try: # <<<<<<<<<<<<<< @@ -12032,7 +12201,7 @@ goto __pyx_L0; } - /* "_pydevd_bundle/pydevd_cython.pyx":480 + /* "_pydevd_bundle/pydevd_cython.pyx":485 * def manage_return_values(self, main_debugger, frame, event, arg): * * def get_func_name(frame): # <<<<<<<<<<<<<< @@ -12059,7 +12228,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":478 +/* "_pydevd_bundle/pydevd_cython.pyx":483 * return func_name * * def manage_return_values(self, main_debugger, frame, event, arg): # <<<<<<<<<<<<<< @@ -12086,19 +12255,19 @@ PyObject *__pyx_t_12 = NULL; __Pyx_RefNannySetupContext("manage_return_values", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":480 + /* "_pydevd_bundle/pydevd_cython.pyx":485 * def manage_return_values(self, main_debugger, frame, event, arg): * * def get_func_name(frame): # <<<<<<<<<<<<<< * code_obj = frame.f_code * func_name = code_obj.co_name */ - __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_return_values_1get_func_name, 0, __pyx_n_s_manage_return_values_locals_get, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython, __pyx_d, ((PyObject *)__pyx_codeobj__6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 480, __pyx_L1_error) + __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_return_values_1get_func_name, 0, __pyx_n_s_manage_return_values_locals_get, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython, __pyx_d, ((PyObject *)__pyx_codeobj__6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_get_func_name = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":493 + /* "_pydevd_bundle/pydevd_cython.pyx":498 * return func_name * * try: # <<<<<<<<<<<<<< @@ -12114,85 +12283,85 @@ __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":494 + /* "_pydevd_bundle/pydevd_cython.pyx":499 * * try: * if main_debugger.show_return_values: # <<<<<<<<<<<<<< * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 494, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 499, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 494, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 499, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { - /* "_pydevd_bundle/pydevd_cython.pyx":495 + /* "_pydevd_bundle/pydevd_cython.pyx":500 * try: * if main_debugger.show_return_values: * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): # <<<<<<<<<<<<<< * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): */ - __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 495, __pyx_L3_error) + __pyx_t_6 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 500, __pyx_L3_error) if (__pyx_t_6) { } else { __pyx_t_5 = __pyx_t_6; goto __pyx_L11_bool_binop_done; } - __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 495, __pyx_L3_error) + __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 500, __pyx_L3_error) __pyx_t_7 = (__pyx_t_6 != 0); if (__pyx_t_7) { } else { __pyx_t_5 = __pyx_t_7; goto __pyx_L11_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 495, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 500, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_HasAttr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 495, __pyx_L3_error) + __pyx_t_7 = __Pyx_HasAttr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 500, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (__pyx_t_7 != 0); __pyx_t_5 = __pyx_t_6; __pyx_L11_bool_binop_done:; if (__pyx_t_5) { - /* "_pydevd_bundle/pydevd_cython.pyx":496 + /* "_pydevd_bundle/pydevd_cython.pyx":501 * if main_debugger.show_return_values: * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): # <<<<<<<<<<<<<< * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals[RETURN_VALUES_DICT] = {} */ - __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 496, __pyx_L3_error) + __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 501, __pyx_L3_error) __pyx_t_7 = (__pyx_t_6 != 0); if (__pyx_t_7) { } else { __pyx_t_5 = __pyx_t_7; goto __pyx_L15_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 496, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 501, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_HasAttr(__pyx_t_1, __pyx_n_s_f_locals); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 496, __pyx_L3_error) + __pyx_t_7 = __Pyx_HasAttr(__pyx_t_1, __pyx_n_s_f_locals); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 501, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (__pyx_t_7 != 0); __pyx_t_5 = __pyx_t_6; __pyx_L15_bool_binop_done:; if (__pyx_t_5) { - /* "_pydevd_bundle/pydevd_cython.pyx":497 + /* "_pydevd_bundle/pydevd_cython.pyx":502 * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): # <<<<<<<<<<<<<< * frame.f_back.f_locals[RETURN_VALUES_DICT] = {} * name = get_func_name(frame) */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 497, __pyx_L3_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 502, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_dict_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 497, __pyx_L3_error) + __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_dict_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 502, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 497, __pyx_L3_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 502, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 497, __pyx_L3_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 502, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; @@ -12206,14 +12375,14 @@ } } if (!__pyx_t_10) { - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 497, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 502, __pyx_L3_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_8); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_t_11}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 497, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 502, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; @@ -12222,53 +12391,53 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_t_11}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 497, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 502, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { - __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 497, __pyx_L3_error) + __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 502, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL; __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_11); __pyx_t_11 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 497, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 502, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_t_8, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 497, __pyx_L3_error) + __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_t_8, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 502, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "_pydevd_bundle/pydevd_cython.pyx":498 + /* "_pydevd_bundle/pydevd_cython.pyx":503 * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals[RETURN_VALUES_DICT] = {} # <<<<<<<<<<<<<< * name = get_func_name(frame) * frame.f_back.f_locals[RETURN_VALUES_DICT][name] = arg */ - __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 498, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 503, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 498, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 503, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 498, __pyx_L3_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 503, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 498, __pyx_L3_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 503, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_1, __pyx_t_8) < 0)) __PYX_ERR(0, 498, __pyx_L3_error) + if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_1, __pyx_t_8) < 0)) __PYX_ERR(0, 503, __pyx_L3_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":497 + /* "_pydevd_bundle/pydevd_cython.pyx":502 * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): # <<<<<<<<<<<<<< @@ -12277,40 +12446,40 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":499 + /* "_pydevd_bundle/pydevd_cython.pyx":504 * if RETURN_VALUES_DICT not in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals[RETURN_VALUES_DICT] = {} * name = get_func_name(frame) # <<<<<<<<<<<<<< * frame.f_back.f_locals[RETURN_VALUES_DICT][name] = arg * if main_debugger.remove_return_values_flag: */ - __pyx_t_8 = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_return_values_get_func_name(__pyx_v_get_func_name, __pyx_v_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 499, __pyx_L3_error) + __pyx_t_8 = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20manage_return_values_get_func_name(__pyx_v_get_func_name, __pyx_v_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 504, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_name = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":500 + /* "_pydevd_bundle/pydevd_cython.pyx":505 * frame.f_back.f_locals[RETURN_VALUES_DICT] = {} * name = get_func_name(frame) * frame.f_back.f_locals[RETURN_VALUES_DICT][name] = arg # <<<<<<<<<<<<<< * if main_debugger.remove_return_values_flag: * # Showing return values was turned off, we should remove them from locals dict. */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 500, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 505, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 500, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 505, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 500, __pyx_L3_error) + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 505, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = PyObject_GetItem(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 500, __pyx_L3_error) + __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 505, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_name, __pyx_v_arg) < 0)) __PYX_ERR(0, 500, __pyx_L3_error) + if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_name, __pyx_v_arg) < 0)) __PYX_ERR(0, 505, __pyx_L3_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":496 + /* "_pydevd_bundle/pydevd_cython.pyx":501 * if main_debugger.show_return_values: * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): # <<<<<<<<<<<<<< @@ -12319,7 +12488,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":495 + /* "_pydevd_bundle/pydevd_cython.pyx":500 * try: * if main_debugger.show_return_values: * if event == "return" and hasattr(frame, "f_code") and hasattr(frame.f_code, "co_name"): # <<<<<<<<<<<<<< @@ -12328,7 +12497,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":494 + /* "_pydevd_bundle/pydevd_cython.pyx":499 * * try: * if main_debugger.show_return_values: # <<<<<<<<<<<<<< @@ -12337,31 +12506,31 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":501 + /* "_pydevd_bundle/pydevd_cython.pyx":506 * name = get_func_name(frame) * frame.f_back.f_locals[RETURN_VALUES_DICT][name] = arg * if main_debugger.remove_return_values_flag: # <<<<<<<<<<<<<< * # Showing return values was turned off, we should remove them from locals dict. * # The values can be in the current frame or in the back one */ - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 501, __pyx_L3_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 506, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 501, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 506, __pyx_L3_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_6) { - /* "_pydevd_bundle/pydevd_cython.pyx":504 + /* "_pydevd_bundle/pydevd_cython.pyx":509 * # Showing return values was turned off, we should remove them from locals dict. * # The values can be in the current frame or in the back one * if RETURN_VALUES_DICT in dict_keys(frame.f_locals): # <<<<<<<<<<<<<< * frame.f_locals.pop(RETURN_VALUES_DICT) * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): */ - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 504, __pyx_L3_error) + __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_dict_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 504, __pyx_L3_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_dict_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 504, __pyx_L3_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 509, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -12374,14 +12543,14 @@ } } if (!__pyx_t_11) { - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 504, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 509, __pyx_L3_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_8); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_t_12}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 504, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 509, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; @@ -12390,44 +12559,44 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_t_12}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 504, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 509, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { - __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 504, __pyx_L3_error) + __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 509, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11); __pyx_t_11 = NULL; __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_t_12); __pyx_t_12 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 504, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 509, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, __pyx_t_8, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 504, __pyx_L3_error) + __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, __pyx_t_8, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 509, __pyx_L3_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_5 = (__pyx_t_6 != 0); if (__pyx_t_5) { - /* "_pydevd_bundle/pydevd_cython.pyx":505 + /* "_pydevd_bundle/pydevd_cython.pyx":510 * # The values can be in the current frame or in the back one * if RETURN_VALUES_DICT in dict_keys(frame.f_locals): * frame.f_locals.pop(RETURN_VALUES_DICT) # <<<<<<<<<<<<<< * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): */ - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 505, __pyx_L3_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 510, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_pop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 505, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_pop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 510, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 505, __pyx_L3_error) + __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 510, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { @@ -12440,14 +12609,14 @@ } } if (!__pyx_t_10) { - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 505, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 510, __pyx_L3_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_8); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_t_9}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 505, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 510, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -12456,20 +12625,20 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_t_9}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 505, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 510, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { - __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 505, __pyx_L3_error) + __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 510, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL; __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_9); __pyx_t_9 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 505, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 510, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } @@ -12477,7 +12646,7 @@ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":504 + /* "_pydevd_bundle/pydevd_cython.pyx":509 * # Showing return values was turned off, we should remove them from locals dict. * # The values can be in the current frame or in the back one * if RETURN_VALUES_DICT in dict_keys(frame.f_locals): # <<<<<<<<<<<<<< @@ -12486,43 +12655,43 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":506 + /* "_pydevd_bundle/pydevd_cython.pyx":511 * if RETURN_VALUES_DICT in dict_keys(frame.f_locals): * frame.f_locals.pop(RETURN_VALUES_DICT) * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): # <<<<<<<<<<<<<< * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals.pop(RETURN_VALUES_DICT) */ - __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 506, __pyx_L3_error) + __pyx_t_6 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 511, __pyx_L3_error) __pyx_t_7 = (__pyx_t_6 != 0); if (__pyx_t_7) { } else { __pyx_t_5 = __pyx_t_7; goto __pyx_L21_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 506, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 511, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_HasAttr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 506, __pyx_L3_error) + __pyx_t_7 = __Pyx_HasAttr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 511, __pyx_L3_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_6 = (__pyx_t_7 != 0); __pyx_t_5 = __pyx_t_6; __pyx_L21_bool_binop_done:; if (__pyx_t_5) { - /* "_pydevd_bundle/pydevd_cython.pyx":507 + /* "_pydevd_bundle/pydevd_cython.pyx":512 * frame.f_locals.pop(RETURN_VALUES_DICT) * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): # <<<<<<<<<<<<<< * frame.f_back.f_locals.pop(RETURN_VALUES_DICT) * main_debugger.remove_return_values_flag = False */ - __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 507, __pyx_L3_error) + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 512, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_dict_keys); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 507, __pyx_L3_error) + __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_dict_keys); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 512, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 507, __pyx_L3_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 512, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 507, __pyx_L3_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 512, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; @@ -12536,14 +12705,14 @@ } } if (!__pyx_t_9) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 507, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 512, __pyx_L3_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 507, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 512, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; @@ -12552,47 +12721,47 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 507, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 512, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { - __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 507, __pyx_L3_error) + __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 512, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_10); __pyx_t_10 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 507, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 512, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_t_8, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 507, __pyx_L3_error) + __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_t_8, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 512, __pyx_L3_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (__pyx_t_5 != 0); if (__pyx_t_6) { - /* "_pydevd_bundle/pydevd_cython.pyx":508 + /* "_pydevd_bundle/pydevd_cython.pyx":513 * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals.pop(RETURN_VALUES_DICT) # <<<<<<<<<<<<<< * main_debugger.remove_return_values_flag = False * except: */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 508, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 513, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 508, __pyx_L3_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_f_locals); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 513, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_pop); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 508, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_pop); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 513, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 508, __pyx_L3_error) + __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 513, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { @@ -12605,14 +12774,14 @@ } } if (!__pyx_t_11) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 508, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 513, __pyx_L3_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_t_12}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 508, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 513, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; @@ -12621,20 +12790,20 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[2] = {__pyx_t_11, __pyx_t_12}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 508, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 513, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { - __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 508, __pyx_L3_error) + __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 513, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11); __pyx_t_11 = NULL; __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_t_12); __pyx_t_12 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 508, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 513, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } @@ -12642,7 +12811,7 @@ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":507 + /* "_pydevd_bundle/pydevd_cython.pyx":512 * frame.f_locals.pop(RETURN_VALUES_DICT) * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): # <<<<<<<<<<<<<< @@ -12651,7 +12820,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":506 + /* "_pydevd_bundle/pydevd_cython.pyx":511 * if RETURN_VALUES_DICT in dict_keys(frame.f_locals): * frame.f_locals.pop(RETURN_VALUES_DICT) * if hasattr(frame, "f_back") and hasattr(frame.f_back, "f_locals"): # <<<<<<<<<<<<<< @@ -12660,16 +12829,16 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":509 + /* "_pydevd_bundle/pydevd_cython.pyx":514 * if RETURN_VALUES_DICT in dict_keys(frame.f_back.f_locals): * frame.f_back.f_locals.pop(RETURN_VALUES_DICT) * main_debugger.remove_return_values_flag = False # <<<<<<<<<<<<<< * except: * main_debugger.remove_return_values_flag = False */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag, Py_False) < 0) __PYX_ERR(0, 509, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag, Py_False) < 0) __PYX_ERR(0, 514, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":501 + /* "_pydevd_bundle/pydevd_cython.pyx":506 * name = get_func_name(frame) * frame.f_back.f_locals[RETURN_VALUES_DICT][name] = arg * if main_debugger.remove_return_values_flag: # <<<<<<<<<<<<<< @@ -12678,7 +12847,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":493 + /* "_pydevd_bundle/pydevd_cython.pyx":498 * return func_name * * try: # <<<<<<<<<<<<<< @@ -12698,7 +12867,7 @@ __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":510 + /* "_pydevd_bundle/pydevd_cython.pyx":515 * frame.f_back.f_locals.pop(RETURN_VALUES_DICT) * main_debugger.remove_return_values_flag = False * except: # <<<<<<<<<<<<<< @@ -12707,30 +12876,30 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.manage_return_values", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_10) < 0) __PYX_ERR(0, 510, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_10) < 0) __PYX_ERR(0, 515, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_10); - /* "_pydevd_bundle/pydevd_cython.pyx":511 + /* "_pydevd_bundle/pydevd_cython.pyx":516 * main_debugger.remove_return_values_flag = False * except: * main_debugger.remove_return_values_flag = False # <<<<<<<<<<<<<< * traceback.print_exc() * */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag, Py_False) < 0) __PYX_ERR(0, 511, __pyx_L5_except_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag, Py_False) < 0) __PYX_ERR(0, 516, __pyx_L5_except_error) - /* "_pydevd_bundle/pydevd_cython.pyx":512 + /* "_pydevd_bundle/pydevd_cython.pyx":517 * except: * main_debugger.remove_return_values_flag = False * traceback.print_exc() # <<<<<<<<<<<<<< * - * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) + * def clear_run_state(self, info): */ - __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 512, __pyx_L5_except_error) + __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 517, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 512, __pyx_L5_except_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 517, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; @@ -12744,10 +12913,10 @@ } } if (__pyx_t_11) { - __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 512, __pyx_L5_except_error) + __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 517, __pyx_L5_except_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else { - __pyx_t_12 = __Pyx_PyObject_CallNoArg(__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 512, __pyx_L5_except_error) + __pyx_t_12 = __Pyx_PyObject_CallNoArg(__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 517, __pyx_L5_except_error) } __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -12759,7 +12928,7 @@ } __pyx_L5_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":493 + /* "_pydevd_bundle/pydevd_cython.pyx":498 * return func_name * * try: # <<<<<<<<<<<<<< @@ -12779,7 +12948,7 @@ __pyx_L8_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":478 + /* "_pydevd_bundle/pydevd_cython.pyx":483 * return func_name * * def manage_return_values(self, main_debugger, frame, event, arg): # <<<<<<<<<<<<<< @@ -12807,7 +12976,85 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":515 +/* "_pydevd_bundle/pydevd_cython.pyx":519 + * traceback.print_exc() + * + * def clear_run_state(self, info): # <<<<<<<<<<<<<< + * info.pydev_step_stop = None + * info.pydev_step_cmd = -1 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_19clear_run_state(PyObject *__pyx_v_self, PyObject *__pyx_v_info); /*proto*/ +static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_19clear_run_state(PyObject *__pyx_v_self, PyObject *__pyx_v_info) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clear_run_state (wrapper)", 0); + __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_18clear_run_state(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self), ((PyObject *)__pyx_v_info)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_18clear_run_state(CYTHON_UNUSED struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v_info) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("clear_run_state", 0); + + /* "_pydevd_bundle/pydevd_cython.pyx":520 + * + * def clear_run_state(self, info): + * info.pydev_step_stop = None # <<<<<<<<<<<<<< + * info.pydev_step_cmd = -1 + * info.pydev_state = STATE_RUN + */ + if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_step_stop, Py_None) < 0) __PYX_ERR(0, 520, __pyx_L1_error) + + /* "_pydevd_bundle/pydevd_cython.pyx":521 + * def clear_run_state(self, info): + * info.pydev_step_stop = None + * info.pydev_step_cmd = -1 # <<<<<<<<<<<<<< + * info.pydev_state = STATE_RUN + * + */ + if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_step_cmd, __pyx_int_neg_1) < 0) __PYX_ERR(0, 521, __pyx_L1_error) + + /* "_pydevd_bundle/pydevd_cython.pyx":522 + * info.pydev_step_stop = None + * info.pydev_step_cmd = -1 + * info.pydev_state = STATE_RUN # <<<<<<<<<<<<<< + * + * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) + */ + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_STATE_RUN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_info, __pyx_n_s_pydev_state, __pyx_t_1) < 0) __PYX_ERR(0, 522, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_pydevd_bundle/pydevd_cython.pyx":519 + * traceback.print_exc() + * + * def clear_run_state(self, info): # <<<<<<<<<<<<<< + * info.pydev_step_stop = None + * info.pydev_step_cmd = -1 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.clear_run_state", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "_pydevd_bundle/pydevd_cython.pyx":525 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cpdef trace_dispatch(self, frame, str event, arg): # <<<<<<<<<<<<<< @@ -12815,7 +13062,7 @@ * cdef bint is_exception_event; */ -static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_19trace_dispatch(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_21trace_dispatch(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispatch(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v_frame, PyObject *__pyx_v_event, PyObject *__pyx_v_arg, int __pyx_skip_dispatch) { PyObject *__pyx_v_filename = 0; int __pyx_v_is_exception_event; @@ -12893,9 +13140,9 @@ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 515, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_19trace_dispatch)) { + if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_21trace_dispatch)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; @@ -12913,7 +13160,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 515, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 525, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -12921,13 +13168,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 515, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 525, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 515, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -12941,7 +13188,7 @@ __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_arg); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 515, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -12954,7 +13201,7 @@ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /* "_pydevd_bundle/pydevd_cython.pyx":539 + /* "_pydevd_bundle/pydevd_cython.pyx":549 * # ENDIF * * main_debugger, filename, info, thread, frame_skips_cache, frame_cache_key = self._args # <<<<<<<<<<<<<< @@ -12965,15 +13212,11 @@ __Pyx_INCREF(__pyx_t_1); if (likely(__pyx_t_1 != Py_None)) { PyObject* sequence = __pyx_t_1; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 6)) { if (size > 6) __Pyx_RaiseTooManyValuesError(6); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 539, __pyx_L1_error) + __PYX_ERR(0, 549, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); @@ -12993,7 +13236,7 @@ Py_ssize_t i; PyObject** temps[6] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_6,&__pyx_t_4,&__pyx_t_7,&__pyx_t_8}; for (i=0; i < 6; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 539, __pyx_L1_error) + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 549, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } @@ -13001,12 +13244,12 @@ #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 539, __pyx_L1_error) + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 549, __pyx_L1_error) } - if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 539, __pyx_L1_error) - if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo))))) __PYX_ERR(0, 539, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 539, __pyx_L1_error) - if (!(likely(PyTuple_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 539, __pyx_L1_error) + if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 549, __pyx_L1_error) + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo))))) __PYX_ERR(0, 549, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 549, __pyx_L1_error) + if (!(likely(PyTuple_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 549, __pyx_L1_error) __pyx_v_main_debugger = __pyx_t_2; __pyx_t_2 = 0; __pyx_v_filename = ((PyObject*)__pyx_t_3); @@ -13020,7 +13263,7 @@ __pyx_v_frame_cache_key = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":541 + /* "_pydevd_bundle/pydevd_cython.pyx":551 * main_debugger, filename, info, thread, frame_skips_cache, frame_cache_key = self._args * # print('frame trace_dispatch', frame.f_lineno, frame.f_code.co_name, event, info.pydev_step_cmd) * try: # <<<<<<<<<<<<<< @@ -13029,7 +13272,7 @@ */ /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":542 + /* "_pydevd_bundle/pydevd_cython.pyx":552 * # print('frame trace_dispatch', frame.f_lineno, frame.f_code.co_name, event, info.pydev_step_cmd) * try: * info.is_tracing = True # <<<<<<<<<<<<<< @@ -13038,29 +13281,29 @@ */ __pyx_v_info->is_tracing = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":543 + /* "_pydevd_bundle/pydevd_cython.pyx":553 * try: * info.is_tracing = True * line = frame.f_lineno # <<<<<<<<<<<<<< * line_cache_key = (frame_cache_key, line) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 543, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 553, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 543, __pyx_L4_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 553, __pyx_L4_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_line = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":544 + /* "_pydevd_bundle/pydevd_cython.pyx":554 * info.is_tracing = True * line = frame.f_lineno * line_cache_key = (frame_cache_key, line) # <<<<<<<<<<<<<< * * if main_debugger._finish_debugging_session: */ - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 544, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 544, __pyx_L4_error) + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 554, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_frame_cache_key); __Pyx_GIVEREF(__pyx_v_frame_cache_key); @@ -13071,20 +13314,20 @@ __pyx_v_line_cache_key = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":546 + /* "_pydevd_bundle/pydevd_cython.pyx":556 * line_cache_key = (frame_cache_key, line) * * if main_debugger._finish_debugging_session: # <<<<<<<<<<<<<< * return None * */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 546, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 556, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 546, __pyx_L4_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 556, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":547 + /* "_pydevd_bundle/pydevd_cython.pyx":557 * * if main_debugger._finish_debugging_session: * return None # <<<<<<<<<<<<<< @@ -13092,11 +13335,10 @@ * plugin_manager = main_debugger.plugin */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":546 + /* "_pydevd_bundle/pydevd_cython.pyx":556 * line_cache_key = (frame_cache_key, line) * * if main_debugger._finish_debugging_session: # <<<<<<<<<<<<<< @@ -13105,53 +13347,53 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":549 + /* "_pydevd_bundle/pydevd_cython.pyx":559 * return None * * plugin_manager = main_debugger.plugin # <<<<<<<<<<<<<< * * is_exception_event = event == 'exception' */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 549, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_plugin); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 559, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_plugin_manager = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":551 + /* "_pydevd_bundle/pydevd_cython.pyx":561 * plugin_manager = main_debugger.plugin * * is_exception_event = event == 'exception' # <<<<<<<<<<<<<< * has_exception_breakpoints = main_debugger.break_on_caught_exceptions or main_debugger.has_plugin_exception_breaks * */ - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_exception, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 551, __pyx_L4_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_exception, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 561, __pyx_L4_error) __pyx_v_is_exception_event = __pyx_t_9; - /* "_pydevd_bundle/pydevd_cython.pyx":552 + /* "_pydevd_bundle/pydevd_cython.pyx":562 * * is_exception_event = event == 'exception' * has_exception_breakpoints = main_debugger.break_on_caught_exceptions or main_debugger.has_plugin_exception_breaks # <<<<<<<<<<<<<< * * if is_exception_event: */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_break_on_caught_exceptions); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 552, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_break_on_caught_exceptions); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 562, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 552, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 562, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_10) { } else { __pyx_t_9 = __pyx_t_10; goto __pyx_L7_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_exception_breaks); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 552, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_exception_breaks); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 562, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 552, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 562, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = __pyx_t_10; __pyx_L7_bool_binop_done:; __pyx_v_has_exception_breakpoints = __pyx_t_9; - /* "_pydevd_bundle/pydevd_cython.pyx":554 + /* "_pydevd_bundle/pydevd_cython.pyx":564 * has_exception_breakpoints = main_debugger.break_on_caught_exceptions or main_debugger.has_plugin_exception_breaks * * if is_exception_event: # <<<<<<<<<<<<<< @@ -13161,7 +13403,7 @@ __pyx_t_9 = (__pyx_v_is_exception_event != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":555 + /* "_pydevd_bundle/pydevd_cython.pyx":565 * * if is_exception_event: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -13171,14 +13413,14 @@ __pyx_t_9 = (__pyx_v_has_exception_breakpoints != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":556 + /* "_pydevd_bundle/pydevd_cython.pyx":566 * if is_exception_event: * if has_exception_breakpoints: * flag, frame = self.should_stop_on_exception(frame, event, arg) # <<<<<<<<<<<<<< * if flag: * self.handle_exception(frame, event, arg) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_should_stop_on_exception); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 556, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_should_stop_on_exception); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; __pyx_t_5 = 0; @@ -13195,7 +13437,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 556, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 566, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -13203,13 +13445,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 556, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 566, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_4 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 556, __pyx_L4_error) + __pyx_t_4 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 566, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -13223,22 +13465,18 @@ __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v_arg); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 556, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 566, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) { PyObject* sequence = __pyx_t_8; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 556, __pyx_L4_error) + __PYX_ERR(0, 566, __pyx_L4_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -13251,15 +13489,15 @@ __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); #else - __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 556, __pyx_L4_error) + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 556, __pyx_L4_error) + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 566, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 556, __pyx_L4_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 566, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_11 = Py_TYPE(__pyx_t_7)->tp_iternext; @@ -13267,7 +13505,7 @@ __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L11_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_7), 2) < 0) __PYX_ERR(0, 556, __pyx_L4_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_7), 2) < 0) __PYX_ERR(0, 566, __pyx_L4_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L12_unpacking_done; @@ -13275,7 +13513,7 @@ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 556, __pyx_L4_error) + __PYX_ERR(0, 566, __pyx_L4_error) __pyx_L12_unpacking_done:; } __pyx_v_flag = __pyx_t_1; @@ -13283,24 +13521,24 @@ __Pyx_DECREF_SET(__pyx_v_frame, __pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":557 + /* "_pydevd_bundle/pydevd_cython.pyx":567 * if has_exception_breakpoints: * flag, frame = self.should_stop_on_exception(frame, event, arg) * if flag: # <<<<<<<<<<<<<< * self.handle_exception(frame, event, arg) * return self.trace_dispatch */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 557, __pyx_L4_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 567, __pyx_L4_error) if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":558 + /* "_pydevd_bundle/pydevd_cython.pyx":568 * flag, frame = self.should_stop_on_exception(frame, event, arg) * if flag: * self.handle_exception(frame, event, arg) # <<<<<<<<<<<<<< * return self.trace_dispatch * is_line = False */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 558, __pyx_L4_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_handle_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 568, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; __pyx_t_5 = 0; @@ -13317,7 +13555,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 558, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 568, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -13325,13 +13563,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 558, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 568, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_7 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 558, __pyx_L4_error) + __pyx_t_7 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 568, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -13345,14 +13583,14 @@ __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_5, __pyx_v_arg); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 558, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 568, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":559 + /* "_pydevd_bundle/pydevd_cython.pyx":569 * if flag: * self.handle_exception(frame, event, arg) * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -13360,13 +13598,13 @@ * is_return = False */ __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 559, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 569, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":557 + /* "_pydevd_bundle/pydevd_cython.pyx":567 * if has_exception_breakpoints: * flag, frame = self.should_stop_on_exception(frame, event, arg) * if flag: # <<<<<<<<<<<<<< @@ -13375,7 +13613,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":555 + /* "_pydevd_bundle/pydevd_cython.pyx":565 * * if is_exception_event: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -13384,7 +13622,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":560 + /* "_pydevd_bundle/pydevd_cython.pyx":570 * self.handle_exception(frame, event, arg) * return self.trace_dispatch * is_line = False # <<<<<<<<<<<<<< @@ -13393,7 +13631,7 @@ */ __pyx_v_is_line = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":561 + /* "_pydevd_bundle/pydevd_cython.pyx":571 * return self.trace_dispatch * is_line = False * is_return = False # <<<<<<<<<<<<<< @@ -13402,7 +13640,7 @@ */ __pyx_v_is_return = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":562 + /* "_pydevd_bundle/pydevd_cython.pyx":572 * is_line = False * is_return = False * is_call = False # <<<<<<<<<<<<<< @@ -13411,7 +13649,7 @@ */ __pyx_v_is_call = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":554 + /* "_pydevd_bundle/pydevd_cython.pyx":564 * has_exception_breakpoints = main_debugger.break_on_caught_exceptions or main_debugger.has_plugin_exception_breaks * * if is_exception_event: # <<<<<<<<<<<<<< @@ -13421,7 +13659,7 @@ goto __pyx_L9; } - /* "_pydevd_bundle/pydevd_cython.pyx":564 + /* "_pydevd_bundle/pydevd_cython.pyx":574 * is_call = False * else: * is_line = event == 'line' # <<<<<<<<<<<<<< @@ -13429,30 +13667,30 @@ * is_call = event == 'call' */ /*else*/ { - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_line, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 564, __pyx_L4_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_line, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 574, __pyx_L4_error) __pyx_v_is_line = __pyx_t_9; - /* "_pydevd_bundle/pydevd_cython.pyx":565 + /* "_pydevd_bundle/pydevd_cython.pyx":575 * else: * is_line = event == 'line' * is_return = event == 'return' # <<<<<<<<<<<<<< * is_call = event == 'call' * if not is_line and not is_return and not is_call: */ - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 565, __pyx_L4_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_return, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 575, __pyx_L4_error) __pyx_v_is_return = __pyx_t_9; - /* "_pydevd_bundle/pydevd_cython.pyx":566 + /* "_pydevd_bundle/pydevd_cython.pyx":576 * is_line = event == 'line' * is_return = event == 'return' * is_call = event == 'call' # <<<<<<<<<<<<<< * if not is_line and not is_return and not is_call: * # I believe this can only happen in jython on some frontiers on jython and java code, which we don't want to trace. */ - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 566, __pyx_L4_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_v_event, __pyx_n_s_call, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 576, __pyx_L4_error) __pyx_v_is_call = __pyx_t_9; - /* "_pydevd_bundle/pydevd_cython.pyx":567 + /* "_pydevd_bundle/pydevd_cython.pyx":577 * is_return = event == 'return' * is_call = event == 'call' * if not is_line and not is_return and not is_call: # <<<<<<<<<<<<<< @@ -13476,7 +13714,7 @@ __pyx_L15_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":569 + /* "_pydevd_bundle/pydevd_cython.pyx":579 * if not is_line and not is_return and not is_call: * # I believe this can only happen in jython on some frontiers on jython and java code, which we don't want to trace. * return None # <<<<<<<<<<<<<< @@ -13484,11 +13722,10 @@ * need_trace_return = False */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":567 + /* "_pydevd_bundle/pydevd_cython.pyx":577 * is_return = event == 'return' * is_call = event == 'call' * if not is_line and not is_return and not is_call: # <<<<<<<<<<<<<< @@ -13499,7 +13736,7 @@ } __pyx_L9:; - /* "_pydevd_bundle/pydevd_cython.pyx":571 + /* "_pydevd_bundle/pydevd_cython.pyx":581 * return None * * need_trace_return = False # <<<<<<<<<<<<<< @@ -13509,7 +13746,7 @@ __Pyx_INCREF(Py_False); __pyx_v_need_trace_return = Py_False; - /* "_pydevd_bundle/pydevd_cython.pyx":572 + /* "_pydevd_bundle/pydevd_cython.pyx":582 * * need_trace_return = False * if is_call and main_debugger.signature_factory: # <<<<<<<<<<<<<< @@ -13522,22 +13759,22 @@ __pyx_t_9 = __pyx_t_10; goto __pyx_L19_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_signature_factory); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 572, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_signature_factory); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 572, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 582, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = __pyx_t_10; __pyx_L19_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":573 + /* "_pydevd_bundle/pydevd_cython.pyx":583 * need_trace_return = False * if is_call and main_debugger.signature_factory: * need_trace_return = send_signature_call_trace(main_debugger, frame, filename) # <<<<<<<<<<<<<< * if is_return and main_debugger.signature_factory: * send_signature_return_trace(main_debugger, frame, filename, arg) */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_send_signature_call_trace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 573, __pyx_L4_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_send_signature_call_trace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 583, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = NULL; __pyx_t_5 = 0; @@ -13554,7 +13791,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_filename}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 573, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -13562,13 +13799,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_filename}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 573, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_1 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L4_error) + __pyx_t_1 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 583, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -13582,7 +13819,7 @@ __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_5, __pyx_v_filename); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 573, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } @@ -13590,7 +13827,7 @@ __Pyx_DECREF_SET(__pyx_v_need_trace_return, __pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":572 + /* "_pydevd_bundle/pydevd_cython.pyx":582 * * need_trace_return = False * if is_call and main_debugger.signature_factory: # <<<<<<<<<<<<<< @@ -13599,7 +13836,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":574 + /* "_pydevd_bundle/pydevd_cython.pyx":584 * if is_call and main_debugger.signature_factory: * need_trace_return = send_signature_call_trace(main_debugger, frame, filename) * if is_return and main_debugger.signature_factory: # <<<<<<<<<<<<<< @@ -13612,22 +13849,22 @@ __pyx_t_9 = __pyx_t_10; goto __pyx_L22_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_signature_factory); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 574, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_signature_factory); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 574, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 584, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = __pyx_t_10; __pyx_L22_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":575 + /* "_pydevd_bundle/pydevd_cython.pyx":585 * need_trace_return = send_signature_call_trace(main_debugger, frame, filename) * if is_return and main_debugger.signature_factory: * send_signature_return_trace(main_debugger, frame, filename, arg) # <<<<<<<<<<<<<< * * stop_frame = info.pydev_step_stop */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_send_signature_return_trace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L4_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_send_signature_return_trace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 585, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = NULL; __pyx_t_5 = 0; @@ -13644,7 +13881,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_filename, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 575, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 585, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -13652,13 +13889,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_filename, __pyx_v_arg}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 575, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 585, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_7 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 575, __pyx_L4_error) + __pyx_t_7 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 585, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -13675,14 +13912,14 @@ __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_5, __pyx_v_arg); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 575, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 585, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":574 + /* "_pydevd_bundle/pydevd_cython.pyx":584 * if is_call and main_debugger.signature_factory: * need_trace_return = send_signature_call_trace(main_debugger, frame, filename) * if is_return and main_debugger.signature_factory: # <<<<<<<<<<<<<< @@ -13691,7 +13928,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":577 + /* "_pydevd_bundle/pydevd_cython.pyx":587 * send_signature_return_trace(main_debugger, frame, filename, arg) * * stop_frame = info.pydev_step_stop # <<<<<<<<<<<<<< @@ -13703,7 +13940,7 @@ __pyx_v_stop_frame = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":578 + /* "_pydevd_bundle/pydevd_cython.pyx":588 * * stop_frame = info.pydev_step_stop * step_cmd = info.pydev_step_cmd # <<<<<<<<<<<<<< @@ -13713,7 +13950,7 @@ __pyx_t_5 = __pyx_v_info->pydev_step_cmd; __pyx_v_step_cmd = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":580 + /* "_pydevd_bundle/pydevd_cython.pyx":590 * step_cmd = info.pydev_step_cmd * * if is_exception_event: # <<<<<<<<<<<<<< @@ -13723,7 +13960,7 @@ __pyx_t_9 = (__pyx_v_is_exception_event != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":581 + /* "_pydevd_bundle/pydevd_cython.pyx":591 * * if is_exception_event: * breakpoints_for_file = None # <<<<<<<<<<<<<< @@ -13733,14 +13970,14 @@ __Pyx_INCREF(Py_None); __pyx_v_breakpoints_for_file = Py_None; - /* "_pydevd_bundle/pydevd_cython.pyx":583 + /* "_pydevd_bundle/pydevd_cython.pyx":593 * breakpoints_for_file = None * # CMD_STEP_OVER = 108 * if stop_frame and stop_frame is not frame and step_cmd == 108 and \ # <<<<<<<<<<<<<< * arg[0] in (StopIteration, GeneratorExit) and arg[2] is None: * info.pydev_step_cmd = 107 # CMD_STEP_INTO = 107 */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_stop_frame); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 583, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_stop_frame); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 593, __pyx_L4_error) if (__pyx_t_10) { } else { __pyx_t_9 = __pyx_t_10; @@ -13760,25 +13997,25 @@ goto __pyx_L26_bool_binop_done; } - /* "_pydevd_bundle/pydevd_cython.pyx":584 + /* "_pydevd_bundle/pydevd_cython.pyx":594 * # CMD_STEP_OVER = 108 * if stop_frame and stop_frame is not frame and step_cmd == 108 and \ * arg[0] in (StopIteration, GeneratorExit) and arg[2] is None: # <<<<<<<<<<<<<< * info.pydev_step_cmd = 107 # CMD_STEP_INTO = 107 * info.pydev_step_stop = None */ - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_arg, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L4_error) + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_arg, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 594, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_8, __pyx_builtin_StopIteration, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 584, __pyx_L4_error) - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 584, __pyx_L4_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_8, __pyx_builtin_StopIteration, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 594, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 594, __pyx_L4_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_10) { } else { __pyx_t_12 = __pyx_t_10; goto __pyx_L31_bool_binop_done; } - __pyx_t_4 = PyObject_RichCompare(__pyx_t_8, __pyx_builtin_GeneratorExit, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 584, __pyx_L4_error) - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 584, __pyx_L4_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_8, __pyx_builtin_GeneratorExit, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 594, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 594, __pyx_L4_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_12 = __pyx_t_10; __pyx_L31_bool_binop_done:; @@ -13789,7 +14026,7 @@ __pyx_t_9 = __pyx_t_10; goto __pyx_L26_bool_binop_done; } - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_arg, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L4_error) + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_arg, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 594, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = (__pyx_t_8 == Py_None); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -13797,7 +14034,7 @@ __pyx_t_9 = __pyx_t_12; __pyx_L26_bool_binop_done:; - /* "_pydevd_bundle/pydevd_cython.pyx":583 + /* "_pydevd_bundle/pydevd_cython.pyx":593 * breakpoints_for_file = None * # CMD_STEP_OVER = 108 * if stop_frame and stop_frame is not frame and step_cmd == 108 and \ # <<<<<<<<<<<<<< @@ -13806,7 +14043,7 @@ */ if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":585 + /* "_pydevd_bundle/pydevd_cython.pyx":595 * if stop_frame and stop_frame is not frame and step_cmd == 108 and \ * arg[0] in (StopIteration, GeneratorExit) and arg[2] is None: * info.pydev_step_cmd = 107 # CMD_STEP_INTO = 107 # <<<<<<<<<<<<<< @@ -13815,7 +14052,7 @@ */ __pyx_v_info->pydev_step_cmd = 0x6B; - /* "_pydevd_bundle/pydevd_cython.pyx":586 + /* "_pydevd_bundle/pydevd_cython.pyx":596 * arg[0] in (StopIteration, GeneratorExit) and arg[2] is None: * info.pydev_step_cmd = 107 # CMD_STEP_INTO = 107 * info.pydev_step_stop = None # <<<<<<<<<<<<<< @@ -13828,7 +14065,7 @@ __Pyx_DECREF(__pyx_v_info->pydev_step_stop); __pyx_v_info->pydev_step_stop = Py_None; - /* "_pydevd_bundle/pydevd_cython.pyx":583 + /* "_pydevd_bundle/pydevd_cython.pyx":593 * breakpoints_for_file = None * # CMD_STEP_OVER = 108 * if stop_frame and stop_frame is not frame and step_cmd == 108 and \ # <<<<<<<<<<<<<< @@ -13837,7 +14074,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":580 + /* "_pydevd_bundle/pydevd_cython.pyx":590 * step_cmd = info.pydev_step_cmd * * if is_exception_event: # <<<<<<<<<<<<<< @@ -13847,7 +14084,7 @@ goto __pyx_L24; } - /* "_pydevd_bundle/pydevd_cython.pyx":594 + /* "_pydevd_bundle/pydevd_cython.pyx":604 * # Note: this is especially troublesome when we're skipping code with the * # @DontTrace comment. * if stop_frame is frame and is_return and step_cmd in (109, 108): # CMD_STEP_RETURN = 109, CMD_STEP_OVER = 108 # <<<<<<<<<<<<<< @@ -13882,27 +14119,27 @@ __pyx_L34_bool_binop_done:; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":595 + /* "_pydevd_bundle/pydevd_cython.pyx":605 * # @DontTrace comment. * if stop_frame is frame and is_return and step_cmd in (109, 108): # CMD_STEP_RETURN = 109, CMD_STEP_OVER = 108 * if not frame.f_code.co_flags & 0x20: # CO_GENERATOR = 0x20 (inspect.CO_GENERATOR) # <<<<<<<<<<<<<< * info.pydev_step_cmd = 107 # CMD_STEP_INTO = 107 * info.pydev_step_stop = None */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 595, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 605, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_co_flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 595, __pyx_L4_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_co_flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 605, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyInt_AndObjC(__pyx_t_4, __pyx_int_32, 0x20, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 595, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyInt_AndObjC(__pyx_t_4, __pyx_int_32, 0x20, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 605, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 595, __pyx_L4_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 605, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_12 = ((!__pyx_t_9) != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":596 + /* "_pydevd_bundle/pydevd_cython.pyx":606 * if stop_frame is frame and is_return and step_cmd in (109, 108): # CMD_STEP_RETURN = 109, CMD_STEP_OVER = 108 * if not frame.f_code.co_flags & 0x20: # CO_GENERATOR = 0x20 (inspect.CO_GENERATOR) * info.pydev_step_cmd = 107 # CMD_STEP_INTO = 107 # <<<<<<<<<<<<<< @@ -13911,7 +14148,7 @@ */ __pyx_v_info->pydev_step_cmd = 0x6B; - /* "_pydevd_bundle/pydevd_cython.pyx":597 + /* "_pydevd_bundle/pydevd_cython.pyx":607 * if not frame.f_code.co_flags & 0x20: # CO_GENERATOR = 0x20 (inspect.CO_GENERATOR) * info.pydev_step_cmd = 107 # CMD_STEP_INTO = 107 * info.pydev_step_stop = None # <<<<<<<<<<<<<< @@ -13924,7 +14161,7 @@ __Pyx_DECREF(__pyx_v_info->pydev_step_stop); __pyx_v_info->pydev_step_stop = Py_None; - /* "_pydevd_bundle/pydevd_cython.pyx":595 + /* "_pydevd_bundle/pydevd_cython.pyx":605 * # @DontTrace comment. * if stop_frame is frame and is_return and step_cmd in (109, 108): # CMD_STEP_RETURN = 109, CMD_STEP_OVER = 108 * if not frame.f_code.co_flags & 0x20: # CO_GENERATOR = 0x20 (inspect.CO_GENERATOR) # <<<<<<<<<<<<<< @@ -13933,7 +14170,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":594 + /* "_pydevd_bundle/pydevd_cython.pyx":604 * # Note: this is especially troublesome when we're skipping code with the * # @DontTrace comment. * if stop_frame is frame and is_return and step_cmd in (109, 108): # CMD_STEP_RETURN = 109, CMD_STEP_OVER = 108 # <<<<<<<<<<<<<< @@ -13942,16 +14179,16 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":599 + /* "_pydevd_bundle/pydevd_cython.pyx":609 * info.pydev_step_stop = None * * breakpoints_for_file = main_debugger.breakpoints.get(filename) # <<<<<<<<<<<<<< * * can_skip = False */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_breakpoints); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 599, __pyx_L4_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_breakpoints); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 609, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 599, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 609, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; @@ -13965,13 +14202,13 @@ } } if (!__pyx_t_4) { - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 599, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 609, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_filename}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 599, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 609, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -13979,19 +14216,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_filename}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 599, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 609, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L4_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 609, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_filename); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 599, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 609, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } @@ -14000,7 +14237,7 @@ __pyx_v_breakpoints_for_file = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":601 + /* "_pydevd_bundle/pydevd_cython.pyx":611 * breakpoints_for_file = main_debugger.breakpoints.get(filename) * * can_skip = False # <<<<<<<<<<<<<< @@ -14009,7 +14246,7 @@ */ __pyx_v_can_skip = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":603 + /* "_pydevd_bundle/pydevd_cython.pyx":613 * can_skip = False * * if info.pydev_state == 1: # STATE_RUN = 1 # <<<<<<<<<<<<<< @@ -14019,7 +14256,7 @@ __pyx_t_12 = ((__pyx_v_info->pydev_state == 1) != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":608 + /* "_pydevd_bundle/pydevd_cython.pyx":618 * #- we should make a step return/step over and we're not in the current frame * # CMD_STEP_RETURN = 109, CMD_STEP_OVER = 108 * can_skip = (step_cmd == -1 and stop_frame is None) \ # <<<<<<<<<<<<<< @@ -14040,7 +14277,7 @@ } __pyx_L40_next_or:; - /* "_pydevd_bundle/pydevd_cython.pyx":609 + /* "_pydevd_bundle/pydevd_cython.pyx":619 * # CMD_STEP_RETURN = 109, CMD_STEP_OVER = 108 * can_skip = (step_cmd == -1 and stop_frame is None) \ * or (step_cmd in (109, 108) and stop_frame is not frame) # <<<<<<<<<<<<<< @@ -14068,21 +14305,21 @@ __pyx_L39_bool_binop_done:; __pyx_v_can_skip = __pyx_t_12; - /* "_pydevd_bundle/pydevd_cython.pyx":611 + /* "_pydevd_bundle/pydevd_cython.pyx":621 * or (step_cmd in (109, 108) and stop_frame is not frame) * * if can_skip: # <<<<<<<<<<<<<< * if plugin_manager is not None and main_debugger.has_plugin_line_breaks: - * can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame) + * can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame, info) */ __pyx_t_12 = (__pyx_v_can_skip != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":612 + /* "_pydevd_bundle/pydevd_cython.pyx":622 * * if can_skip: * if plugin_manager is not None and main_debugger.has_plugin_line_breaks: # <<<<<<<<<<<<<< - * can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame) + * can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame, info) * */ __pyx_t_10 = (__pyx_v_plugin_manager != Py_None); @@ -14092,22 +14329,22 @@ __pyx_t_12 = __pyx_t_9; goto __pyx_L45_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_line_breaks); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 612, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_line_breaks); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 622, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 612, __pyx_L4_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 622, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_12 = __pyx_t_9; __pyx_L45_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":613 + /* "_pydevd_bundle/pydevd_cython.pyx":623 * if can_skip: * if plugin_manager is not None and main_debugger.has_plugin_line_breaks: - * can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame) # <<<<<<<<<<<<<< + * can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame, info) # <<<<<<<<<<<<<< * * # CMD_STEP_OVER = 108 */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_can_not_skip); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 613, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_can_not_skip); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 623, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; __pyx_t_5 = 0; @@ -14123,22 +14360,22 @@ } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { - PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 613, __pyx_L4_error) + PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, ((PyObject *)__pyx_v_info)}; + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 623, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { - PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 613, __pyx_L4_error) + PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, ((PyObject *)__pyx_v_info)}; + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 623, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_4 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 613, __pyx_L4_error) + __pyx_t_4 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 623, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -14152,25 +14389,28 @@ __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v_frame); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 613, __pyx_L4_error) + __Pyx_INCREF(((PyObject *)__pyx_v_info)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_info)); + PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_5, ((PyObject *)__pyx_v_info)); + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 623, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 613, __pyx_L4_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 623, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_can_skip = (!__pyx_t_12); - /* "_pydevd_bundle/pydevd_cython.pyx":612 + /* "_pydevd_bundle/pydevd_cython.pyx":622 * * if can_skip: * if plugin_manager is not None and main_debugger.has_plugin_line_breaks: # <<<<<<<<<<<<<< - * can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame) + * can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame, info) * */ } - /* "_pydevd_bundle/pydevd_cython.pyx":616 + /* "_pydevd_bundle/pydevd_cython.pyx":626 * * # CMD_STEP_OVER = 108 * if can_skip and is_return and main_debugger.show_return_values and info.pydev_step_cmd == 108 and frame.f_back is info.pydev_step_stop: # <<<<<<<<<<<<<< @@ -14189,9 +14429,9 @@ __pyx_t_12 = __pyx_t_9; goto __pyx_L48_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 616, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 626, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 616, __pyx_L4_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 626, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_9) { } else { @@ -14204,7 +14444,7 @@ __pyx_t_12 = __pyx_t_9; goto __pyx_L48_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 616, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 626, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = (__pyx_t_8 == __pyx_v_info->pydev_step_stop); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -14213,7 +14453,7 @@ __pyx_L48_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":618 + /* "_pydevd_bundle/pydevd_cython.pyx":628 * if can_skip and is_return and main_debugger.show_return_values and info.pydev_step_cmd == 108 and frame.f_back is info.pydev_step_stop: * # trace function for showing return values after step over * can_skip = False # <<<<<<<<<<<<<< @@ -14222,7 +14462,7 @@ */ __pyx_v_can_skip = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":616 + /* "_pydevd_bundle/pydevd_cython.pyx":626 * * # CMD_STEP_OVER = 108 * if can_skip and is_return and main_debugger.show_return_values and info.pydev_step_cmd == 108 and frame.f_back is info.pydev_step_stop: # <<<<<<<<<<<<<< @@ -14231,16 +14471,16 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":611 + /* "_pydevd_bundle/pydevd_cython.pyx":621 * or (step_cmd in (109, 108) and stop_frame is not frame) * * if can_skip: # <<<<<<<<<<<<<< * if plugin_manager is not None and main_debugger.has_plugin_line_breaks: - * can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame) + * can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame, info) */ } - /* "_pydevd_bundle/pydevd_cython.pyx":603 + /* "_pydevd_bundle/pydevd_cython.pyx":613 * can_skip = False * * if info.pydev_state == 1: # STATE_RUN = 1 # <<<<<<<<<<<<<< @@ -14249,18 +14489,18 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":624 + /* "_pydevd_bundle/pydevd_cython.pyx":634 * # also, after we hit a breakpoint and go to some other debugging state, we have to force the set trace anyway, * # so, that's why the additional checks are there. * if not breakpoints_for_file: # <<<<<<<<<<<<<< * if can_skip: * if has_exception_breakpoints: */ - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoints_for_file); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 624, __pyx_L4_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoints_for_file); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 634, __pyx_L4_error) __pyx_t_10 = ((!__pyx_t_12) != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":625 + /* "_pydevd_bundle/pydevd_cython.pyx":635 * # so, that's why the additional checks are there. * if not breakpoints_for_file: * if can_skip: # <<<<<<<<<<<<<< @@ -14270,7 +14510,7 @@ __pyx_t_10 = (__pyx_v_can_skip != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":626 + /* "_pydevd_bundle/pydevd_cython.pyx":636 * if not breakpoints_for_file: * if can_skip: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -14280,7 +14520,7 @@ __pyx_t_10 = (__pyx_v_has_exception_breakpoints != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":627 + /* "_pydevd_bundle/pydevd_cython.pyx":637 * if can_skip: * if has_exception_breakpoints: * return self.trace_exception # <<<<<<<<<<<<<< @@ -14288,13 +14528,13 @@ * if need_trace_return: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 627, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 637, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":626 + /* "_pydevd_bundle/pydevd_cython.pyx":636 * if not breakpoints_for_file: * if can_skip: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -14303,7 +14543,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":629 + /* "_pydevd_bundle/pydevd_cython.pyx":639 * return self.trace_exception * else: * if need_trace_return: # <<<<<<<<<<<<<< @@ -14311,10 +14551,10 @@ * else: */ /*else*/ { - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_need_trace_return); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 629, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_need_trace_return); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 639, __pyx_L4_error) if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":630 + /* "_pydevd_bundle/pydevd_cython.pyx":640 * else: * if need_trace_return: * return self.trace_return # <<<<<<<<<<<<<< @@ -14322,13 +14562,13 @@ * return None */ __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 630, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 640, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":629 + /* "_pydevd_bundle/pydevd_cython.pyx":639 * return self.trace_exception * else: * if need_trace_return: # <<<<<<<<<<<<<< @@ -14337,7 +14577,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":632 + /* "_pydevd_bundle/pydevd_cython.pyx":642 * return self.trace_return * else: * return None # <<<<<<<<<<<<<< @@ -14346,13 +14586,12 @@ */ /*else*/ { __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L3_return; } } - /* "_pydevd_bundle/pydevd_cython.pyx":625 + /* "_pydevd_bundle/pydevd_cython.pyx":635 * # so, that's why the additional checks are there. * if not breakpoints_for_file: * if can_skip: # <<<<<<<<<<<<<< @@ -14361,7 +14600,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":624 + /* "_pydevd_bundle/pydevd_cython.pyx":634 * # also, after we hit a breakpoint and go to some other debugging state, we have to force the set trace anyway, * # so, that's why the additional checks are there. * if not breakpoints_for_file: # <<<<<<<<<<<<<< @@ -14371,7 +14610,7 @@ goto __pyx_L53; } - /* "_pydevd_bundle/pydevd_cython.pyx":636 + /* "_pydevd_bundle/pydevd_cython.pyx":646 * else: * # When cached, 0 means we don't have a breakpoint and 1 means we have. * if can_skip: # <<<<<<<<<<<<<< @@ -14382,7 +14621,7 @@ __pyx_t_10 = (__pyx_v_can_skip != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":637 + /* "_pydevd_bundle/pydevd_cython.pyx":647 * # When cached, 0 means we don't have a breakpoint and 1 means we have. * if can_skip: * breakpoints_in_line_cache = frame_skips_cache.get(line_cache_key, -1) # <<<<<<<<<<<<<< @@ -14391,15 +14630,15 @@ */ if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 637, __pyx_L4_error) + __PYX_ERR(0, 647, __pyx_L4_error) } - __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_frame_skips_cache, __pyx_v_line_cache_key, __pyx_int_neg_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 637, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_frame_skips_cache, __pyx_v_line_cache_key, __pyx_int_neg_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 647, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 637, __pyx_L4_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 647, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_breakpoints_in_line_cache = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":638 + /* "_pydevd_bundle/pydevd_cython.pyx":648 * if can_skip: * breakpoints_in_line_cache = frame_skips_cache.get(line_cache_key, -1) * if breakpoints_in_line_cache == 0: # <<<<<<<<<<<<<< @@ -14409,7 +14648,7 @@ __pyx_t_10 = ((__pyx_v_breakpoints_in_line_cache == 0) != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":639 + /* "_pydevd_bundle/pydevd_cython.pyx":649 * breakpoints_in_line_cache = frame_skips_cache.get(line_cache_key, -1) * if breakpoints_in_line_cache == 0: * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -14417,13 +14656,13 @@ * breakpoints_in_frame_cache = frame_skips_cache.get(frame_cache_key, -1) */ __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 639, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 649, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":638 + /* "_pydevd_bundle/pydevd_cython.pyx":648 * if can_skip: * breakpoints_in_line_cache = frame_skips_cache.get(line_cache_key, -1) * if breakpoints_in_line_cache == 0: # <<<<<<<<<<<<<< @@ -14432,7 +14671,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":636 + /* "_pydevd_bundle/pydevd_cython.pyx":646 * else: * # When cached, 0 means we don't have a breakpoint and 1 means we have. * if can_skip: # <<<<<<<<<<<<<< @@ -14441,7 +14680,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":641 + /* "_pydevd_bundle/pydevd_cython.pyx":651 * return self.trace_dispatch * * breakpoints_in_frame_cache = frame_skips_cache.get(frame_cache_key, -1) # <<<<<<<<<<<<<< @@ -14450,15 +14689,15 @@ */ if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 641, __pyx_L4_error) + __PYX_ERR(0, 651, __pyx_L4_error) } - __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_neg_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 641, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_neg_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 651, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 641, __pyx_L4_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 651, __pyx_L4_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_breakpoints_in_frame_cache = __pyx_t_5; - /* "_pydevd_bundle/pydevd_cython.pyx":642 + /* "_pydevd_bundle/pydevd_cython.pyx":652 * * breakpoints_in_frame_cache = frame_skips_cache.get(frame_cache_key, -1) * if breakpoints_in_frame_cache != -1: # <<<<<<<<<<<<<< @@ -14468,7 +14707,7 @@ __pyx_t_10 = ((__pyx_v_breakpoints_in_frame_cache != -1L) != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":644 + /* "_pydevd_bundle/pydevd_cython.pyx":654 * if breakpoints_in_frame_cache != -1: * # Gotten from cache. * has_breakpoint_in_frame = breakpoints_in_frame_cache == 1 # <<<<<<<<<<<<<< @@ -14477,7 +14716,7 @@ */ __pyx_v_has_breakpoint_in_frame = (__pyx_v_breakpoints_in_frame_cache == 1); - /* "_pydevd_bundle/pydevd_cython.pyx":642 + /* "_pydevd_bundle/pydevd_cython.pyx":652 * * breakpoints_in_frame_cache = frame_skips_cache.get(frame_cache_key, -1) * if breakpoints_in_frame_cache != -1: # <<<<<<<<<<<<<< @@ -14487,7 +14726,7 @@ goto __pyx_L59; } - /* "_pydevd_bundle/pydevd_cython.pyx":647 + /* "_pydevd_bundle/pydevd_cython.pyx":657 * * else: * has_breakpoint_in_frame = False # <<<<<<<<<<<<<< @@ -14497,23 +14736,23 @@ /*else*/ { __pyx_v_has_breakpoint_in_frame = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":649 + /* "_pydevd_bundle/pydevd_cython.pyx":659 * has_breakpoint_in_frame = False * # Checks the breakpoint to see if there is a context match in some function * curr_func_name = frame.f_code.co_name # <<<<<<<<<<<<<< * * #global context is set with an empty name */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 649, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 659, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_co_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 649, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_co_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 659, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (!(likely(PyString_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 649, __pyx_L4_error) + if (!(likely(PyString_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 659, __pyx_L4_error) __pyx_v_curr_func_name = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":652 + /* "_pydevd_bundle/pydevd_cython.pyx":662 * * #global context is set with an empty name * if curr_func_name in ('?', ''): # <<<<<<<<<<<<<< @@ -14522,14 +14761,14 @@ */ __Pyx_INCREF(__pyx_v_curr_func_name); __pyx_t_13 = __pyx_v_curr_func_name; - __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_t_13, __pyx_kp_s__7, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 652, __pyx_L4_error) + __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_t_13, __pyx_kp_s__7, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 662, __pyx_L4_error) __pyx_t_9 = (__pyx_t_12 != 0); if (!__pyx_t_9) { } else { __pyx_t_10 = __pyx_t_9; goto __pyx_L61_bool_binop_done; } - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_13, __pyx_kp_s_module, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 652, __pyx_L4_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_13, __pyx_kp_s_module, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 662, __pyx_L4_error) __pyx_t_12 = (__pyx_t_9 != 0); __pyx_t_10 = __pyx_t_12; __pyx_L61_bool_binop_done:; @@ -14537,7 +14776,7 @@ __pyx_t_12 = (__pyx_t_10 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":653 + /* "_pydevd_bundle/pydevd_cython.pyx":663 * #global context is set with an empty name * if curr_func_name in ('?', ''): * curr_func_name = '' # <<<<<<<<<<<<<< @@ -14547,7 +14786,7 @@ __Pyx_INCREF(__pyx_kp_s_); __Pyx_DECREF_SET(__pyx_v_curr_func_name, __pyx_kp_s_); - /* "_pydevd_bundle/pydevd_cython.pyx":652 + /* "_pydevd_bundle/pydevd_cython.pyx":662 * * #global context is set with an empty name * if curr_func_name in ('?', ''): # <<<<<<<<<<<<<< @@ -14556,14 +14795,14 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":655 + /* "_pydevd_bundle/pydevd_cython.pyx":665 * curr_func_name = '' * * for breakpoint in dict_iter_values(breakpoints_for_file): #jython does not support itervalues() # <<<<<<<<<<<<<< * #will match either global or some function * if breakpoint.func_name in ('None', curr_func_name): */ - __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_dict_iter_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_dict_iter_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { @@ -14576,13 +14815,13 @@ } } if (!__pyx_t_4) { - __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_breakpoints_for_file); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_breakpoints_for_file); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_breakpoints_for_file}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_7); } else @@ -14590,19 +14829,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_breakpoints_for_file}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_INCREF(__pyx_v_breakpoints_for_file); __Pyx_GIVEREF(__pyx_v_breakpoints_for_file); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_breakpoints_for_file); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } @@ -14612,9 +14851,9 @@ __pyx_t_8 = __pyx_t_7; __Pyx_INCREF(__pyx_t_8); __pyx_t_14 = 0; __pyx_t_15 = NULL; } else { - __pyx_t_14 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_14 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_15 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_15 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 665, __pyx_L4_error) } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; for (;;) { @@ -14622,17 +14861,17 @@ if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_14); __Pyx_INCREF(__pyx_t_7); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_14); __Pyx_INCREF(__pyx_t_7); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 665, __pyx_L4_error) #else - __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_14); __Pyx_INCREF(__pyx_t_7); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_14); __Pyx_INCREF(__pyx_t_7); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 665, __pyx_L4_error) #else - __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 655, __pyx_L4_error) + __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); #endif } @@ -14642,7 +14881,7 @@ PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 655, __pyx_L4_error) + else __PYX_ERR(0, 665, __pyx_L4_error) } break; } @@ -14651,29 +14890,29 @@ __Pyx_XDECREF_SET(__pyx_v_breakpoint, __pyx_t_7); __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":657 + /* "_pydevd_bundle/pydevd_cython.pyx":667 * for breakpoint in dict_iter_values(breakpoints_for_file): #jython does not support itervalues() * #will match either global or some function * if breakpoint.func_name in ('None', curr_func_name): # <<<<<<<<<<<<<< * has_breakpoint_in_frame = True * break */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_func_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 657, __pyx_L4_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_func_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 667, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_7, __pyx_n_s_None, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 657, __pyx_L4_error) + __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_7, __pyx_n_s_None, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 667, __pyx_L4_error) if (!__pyx_t_10) { } else { __pyx_t_12 = __pyx_t_10; goto __pyx_L66_bool_binop_done; } - __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_7, __pyx_v_curr_func_name, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 657, __pyx_L4_error) + __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_7, __pyx_v_curr_func_name, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 667, __pyx_L4_error) __pyx_t_12 = __pyx_t_10; __pyx_L66_bool_binop_done:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_10 = (__pyx_t_12 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":658 + /* "_pydevd_bundle/pydevd_cython.pyx":668 * #will match either global or some function * if breakpoint.func_name in ('None', curr_func_name): * has_breakpoint_in_frame = True # <<<<<<<<<<<<<< @@ -14682,7 +14921,7 @@ */ __pyx_v_has_breakpoint_in_frame = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":659 + /* "_pydevd_bundle/pydevd_cython.pyx":669 * if breakpoint.func_name in ('None', curr_func_name): * has_breakpoint_in_frame = True * break # <<<<<<<<<<<<<< @@ -14691,7 +14930,7 @@ */ goto __pyx_L64_break; - /* "_pydevd_bundle/pydevd_cython.pyx":657 + /* "_pydevd_bundle/pydevd_cython.pyx":667 * for breakpoint in dict_iter_values(breakpoints_for_file): #jython does not support itervalues() * #will match either global or some function * if breakpoint.func_name in ('None', curr_func_name): # <<<<<<<<<<<<<< @@ -14700,7 +14939,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":655 + /* "_pydevd_bundle/pydevd_cython.pyx":665 * curr_func_name = '' * * for breakpoint in dict_iter_values(breakpoints_for_file): #jython does not support itervalues() # <<<<<<<<<<<<<< @@ -14711,7 +14950,7 @@ __pyx_L64_break:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":662 + /* "_pydevd_bundle/pydevd_cython.pyx":672 * * # Cache the value (1 or 0 or -1 for default because of cython). * if has_breakpoint_in_frame: # <<<<<<<<<<<<<< @@ -14721,7 +14960,7 @@ __pyx_t_10 = (__pyx_v_has_breakpoint_in_frame != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":663 + /* "_pydevd_bundle/pydevd_cython.pyx":673 * # Cache the value (1 or 0 or -1 for default because of cython). * if has_breakpoint_in_frame: * frame_skips_cache[frame_cache_key] = 1 # <<<<<<<<<<<<<< @@ -14730,11 +14969,11 @@ */ if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 663, __pyx_L4_error) + __PYX_ERR(0, 673, __pyx_L4_error) } - if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 663, __pyx_L4_error) + if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 673, __pyx_L4_error) - /* "_pydevd_bundle/pydevd_cython.pyx":662 + /* "_pydevd_bundle/pydevd_cython.pyx":672 * * # Cache the value (1 or 0 or -1 for default because of cython). * if has_breakpoint_in_frame: # <<<<<<<<<<<<<< @@ -14744,7 +14983,7 @@ goto __pyx_L68; } - /* "_pydevd_bundle/pydevd_cython.pyx":665 + /* "_pydevd_bundle/pydevd_cython.pyx":675 * frame_skips_cache[frame_cache_key] = 1 * else: * frame_skips_cache[frame_cache_key] = 0 # <<<<<<<<<<<<<< @@ -14754,15 +14993,15 @@ /*else*/ { if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 665, __pyx_L4_error) + __PYX_ERR(0, 675, __pyx_L4_error) } - if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_0) < 0)) __PYX_ERR(0, 665, __pyx_L4_error) + if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_frame_cache_key, __pyx_int_0) < 0)) __PYX_ERR(0, 675, __pyx_L4_error) } __pyx_L68:; } __pyx_L59:; - /* "_pydevd_bundle/pydevd_cython.pyx":667 + /* "_pydevd_bundle/pydevd_cython.pyx":677 * frame_skips_cache[frame_cache_key] = 0 * * if can_skip and not has_breakpoint_in_frame: # <<<<<<<<<<<<<< @@ -14780,7 +15019,7 @@ __pyx_L70_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":668 + /* "_pydevd_bundle/pydevd_cython.pyx":678 * * if can_skip and not has_breakpoint_in_frame: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -14790,7 +15029,7 @@ __pyx_t_10 = (__pyx_v_has_exception_breakpoints != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":669 + /* "_pydevd_bundle/pydevd_cython.pyx":679 * if can_skip and not has_breakpoint_in_frame: * if has_exception_breakpoints: * return self.trace_exception # <<<<<<<<<<<<<< @@ -14798,13 +15037,13 @@ * if need_trace_return: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 669, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_exception); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 679, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":668 + /* "_pydevd_bundle/pydevd_cython.pyx":678 * * if can_skip and not has_breakpoint_in_frame: * if has_exception_breakpoints: # <<<<<<<<<<<<<< @@ -14813,7 +15052,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":671 + /* "_pydevd_bundle/pydevd_cython.pyx":681 * return self.trace_exception * else: * if need_trace_return: # <<<<<<<<<<<<<< @@ -14821,10 +15060,10 @@ * else: */ /*else*/ { - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_need_trace_return); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 671, __pyx_L4_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_need_trace_return); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 681, __pyx_L4_error) if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":672 + /* "_pydevd_bundle/pydevd_cython.pyx":682 * else: * if need_trace_return: * return self.trace_return # <<<<<<<<<<<<<< @@ -14832,13 +15071,13 @@ * return None */ __Pyx_XDECREF(__pyx_r); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 672, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_return); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 682, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L3_return; - /* "_pydevd_bundle/pydevd_cython.pyx":671 + /* "_pydevd_bundle/pydevd_cython.pyx":681 * return self.trace_exception * else: * if need_trace_return: # <<<<<<<<<<<<<< @@ -14847,7 +15086,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":674 + /* "_pydevd_bundle/pydevd_cython.pyx":684 * return self.trace_return * else: * return None # <<<<<<<<<<<<<< @@ -14856,13 +15095,12 @@ */ /*else*/ { __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L3_return; } } - /* "_pydevd_bundle/pydevd_cython.pyx":667 + /* "_pydevd_bundle/pydevd_cython.pyx":677 * frame_skips_cache[frame_cache_key] = 0 * * if can_skip and not has_breakpoint_in_frame: # <<<<<<<<<<<<<< @@ -14875,7 +15113,7 @@ } __pyx_L24:; - /* "_pydevd_bundle/pydevd_cython.pyx":679 + /* "_pydevd_bundle/pydevd_cython.pyx":689 * #print('NOT skipped', frame.f_lineno, frame.f_code.co_name, event) * * try: # <<<<<<<<<<<<<< @@ -14891,7 +15129,7 @@ __Pyx_XGOTREF(__pyx_t_18); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":680 + /* "_pydevd_bundle/pydevd_cython.pyx":690 * * try: * flag = False # <<<<<<<<<<<<<< @@ -14901,19 +15139,19 @@ __Pyx_INCREF(Py_False); __Pyx_XDECREF_SET(__pyx_v_flag, Py_False); - /* "_pydevd_bundle/pydevd_cython.pyx":684 + /* "_pydevd_bundle/pydevd_cython.pyx":694 * #(one for the line and the other for the return). * * stop_info = {} # <<<<<<<<<<<<<< * breakpoint = None * exist_result = False */ - __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 684, __pyx_L74_error) + __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 694, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_8); __pyx_v_stop_info = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":685 + /* "_pydevd_bundle/pydevd_cython.pyx":695 * * stop_info = {} * breakpoint = None # <<<<<<<<<<<<<< @@ -14923,7 +15161,7 @@ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_breakpoint, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":686 + /* "_pydevd_bundle/pydevd_cython.pyx":696 * stop_info = {} * breakpoint = None * exist_result = False # <<<<<<<<<<<<<< @@ -14932,7 +15170,7 @@ */ __pyx_v_exist_result = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":687 + /* "_pydevd_bundle/pydevd_cython.pyx":697 * breakpoint = None * exist_result = False * stop = False # <<<<<<<<<<<<<< @@ -14941,7 +15179,7 @@ */ __pyx_v_stop = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":688 + /* "_pydevd_bundle/pydevd_cython.pyx":698 * exist_result = False * stop = False * bp_type = None # <<<<<<<<<<<<<< @@ -14951,7 +15189,7 @@ __Pyx_INCREF(Py_None); __pyx_v_bp_type = Py_None; - /* "_pydevd_bundle/pydevd_cython.pyx":689 + /* "_pydevd_bundle/pydevd_cython.pyx":699 * stop = False * bp_type = None * if not is_return and info.pydev_state != STATE_SUSPEND and breakpoints_for_file is not None and line in breakpoints_for_file: # <<<<<<<<<<<<<< @@ -14964,14 +15202,14 @@ __pyx_t_10 = __pyx_t_12; goto __pyx_L81_bool_binop_done; } - __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_state); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 689, __pyx_L74_error) + __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_state); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 699, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 689, __pyx_L74_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 699, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_8, __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 689, __pyx_L74_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_t_8, __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 699, __pyx_L74_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 689, __pyx_L74_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 699, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_12) { } else { @@ -14985,28 +15223,28 @@ __pyx_t_10 = __pyx_t_9; goto __pyx_L81_bool_binop_done; } - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 689, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 699, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_breakpoints_for_file, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 689, __pyx_L74_error) + __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_breakpoints_for_file, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 699, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = (__pyx_t_9 != 0); __pyx_t_10 = __pyx_t_12; __pyx_L81_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":690 + /* "_pydevd_bundle/pydevd_cython.pyx":700 * bp_type = None * if not is_return and info.pydev_state != STATE_SUSPEND and breakpoints_for_file is not None and line in breakpoints_for_file: * breakpoint = breakpoints_for_file[line] # <<<<<<<<<<<<<< * new_frame = frame * stop = True */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_breakpoints_for_file, __pyx_v_line, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 690, __pyx_L74_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_breakpoints_for_file, __pyx_v_line, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 700, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_breakpoint, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":691 + /* "_pydevd_bundle/pydevd_cython.pyx":701 * if not is_return and info.pydev_state != STATE_SUSPEND and breakpoints_for_file is not None and line in breakpoints_for_file: * breakpoint = breakpoints_for_file[line] * new_frame = frame # <<<<<<<<<<<<<< @@ -15016,7 +15254,7 @@ __Pyx_INCREF(__pyx_v_frame); __pyx_v_new_frame = __pyx_v_frame; - /* "_pydevd_bundle/pydevd_cython.pyx":692 + /* "_pydevd_bundle/pydevd_cython.pyx":702 * breakpoint = breakpoints_for_file[line] * new_frame = frame * stop = True # <<<<<<<<<<<<<< @@ -15025,21 +15263,21 @@ */ __pyx_v_stop = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":693 + /* "_pydevd_bundle/pydevd_cython.pyx":703 * new_frame = frame * stop = True * if step_cmd == CMD_STEP_OVER and stop_frame is frame and (is_line or is_return): # <<<<<<<<<<<<<< * stop = False #we don't stop on breakpoint if we have to stop by step-over (it will be processed later) * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: */ - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 703, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 693, __pyx_L74_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 703, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L74_error) + __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 703, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 693, __pyx_L74_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 703, __pyx_L74_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_12) { } else { @@ -15064,7 +15302,7 @@ __pyx_L86_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":694 + /* "_pydevd_bundle/pydevd_cython.pyx":704 * stop = True * if step_cmd == CMD_STEP_OVER and stop_frame is frame and (is_line or is_return): * stop = False #we don't stop on breakpoint if we have to stop by step-over (it will be processed later) # <<<<<<<<<<<<<< @@ -15073,7 +15311,7 @@ */ __pyx_v_stop = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":693 + /* "_pydevd_bundle/pydevd_cython.pyx":703 * new_frame = frame * stop = True * if step_cmd == CMD_STEP_OVER and stop_frame is frame and (is_line or is_return): # <<<<<<<<<<<<<< @@ -15082,7 +15320,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":689 + /* "_pydevd_bundle/pydevd_cython.pyx":699 * stop = False * bp_type = None * if not is_return and info.pydev_state != STATE_SUSPEND and breakpoints_for_file is not None and line in breakpoints_for_file: # <<<<<<<<<<<<<< @@ -15092,7 +15330,7 @@ goto __pyx_L80; } - /* "_pydevd_bundle/pydevd_cython.pyx":695 + /* "_pydevd_bundle/pydevd_cython.pyx":705 * if step_cmd == CMD_STEP_OVER and stop_frame is frame and (is_line or is_return): * stop = False #we don't stop on breakpoint if we have to stop by step-over (it will be processed later) * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: # <<<<<<<<<<<<<< @@ -15106,22 +15344,22 @@ __pyx_t_10 = __pyx_t_12; goto __pyx_L90_bool_binop_done; } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_line_breaks); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 695, __pyx_L74_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_has_plugin_line_breaks); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 695, __pyx_L74_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 705, __pyx_L74_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = __pyx_t_12; __pyx_L90_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":696 + /* "_pydevd_bundle/pydevd_cython.pyx":706 * stop = False #we don't stop on breakpoint if we have to stop by step-over (it will be processed later) * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: * result = plugin_manager.get_breakpoint(main_debugger, self, frame, event, self._args) # <<<<<<<<<<<<<< * if result: * exist_result = True */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_get_breakpoint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 696, __pyx_L74_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_get_breakpoint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 706, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; __pyx_t_5 = 0; @@ -15138,7 +15376,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[6] = {__pyx_t_1, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args}; - __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 696, __pyx_L74_error) + __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 706, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else @@ -15146,13 +15384,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[6] = {__pyx_t_1, __pyx_v_main_debugger, ((PyObject *)__pyx_v_self), __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args}; - __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 696, __pyx_L74_error) + __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 5+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 706, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_8); } else #endif { - __pyx_t_4 = PyTuple_New(5+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 696, __pyx_L74_error) + __pyx_t_4 = PyTuple_New(5+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 706, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -15172,7 +15410,7 @@ __Pyx_INCREF(__pyx_v_self->_args); __Pyx_GIVEREF(__pyx_v_self->_args); PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_5, __pyx_v_self->_args); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 696, __pyx_L74_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 706, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } @@ -15180,17 +15418,17 @@ __pyx_v_result = __pyx_t_8; __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":697 + /* "_pydevd_bundle/pydevd_cython.pyx":707 * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: * result = plugin_manager.get_breakpoint(main_debugger, self, frame, event, self._args) * if result: # <<<<<<<<<<<<<< * exist_result = True * flag, breakpoint, new_frame, bp_type = result */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 697, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 707, __pyx_L74_error) if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":698 + /* "_pydevd_bundle/pydevd_cython.pyx":708 * result = plugin_manager.get_breakpoint(main_debugger, self, frame, event, self._args) * if result: * exist_result = True # <<<<<<<<<<<<<< @@ -15199,7 +15437,7 @@ */ __pyx_v_exist_result = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":699 + /* "_pydevd_bundle/pydevd_cython.pyx":709 * if result: * exist_result = True * flag, breakpoint, new_frame, bp_type = result # <<<<<<<<<<<<<< @@ -15208,15 +15446,11 @@ */ if ((likely(PyTuple_CheckExact(__pyx_v_result))) || (PyList_CheckExact(__pyx_v_result))) { PyObject* sequence = __pyx_v_result; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 699, __pyx_L74_error) + __PYX_ERR(0, 709, __pyx_L74_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -15239,7 +15473,7 @@ Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_8,&__pyx_t_7,&__pyx_t_4,&__pyx_t_1}; for (i=0; i < 4; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 699, __pyx_L74_error) + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 709, __pyx_L74_error) __Pyx_GOTREF(item); *(temps[i]) = item; } @@ -15248,7 +15482,7 @@ } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_8,&__pyx_t_7,&__pyx_t_4,&__pyx_t_1}; - __pyx_t_6 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 699, __pyx_L74_error) + __pyx_t_6 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 709, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { @@ -15256,7 +15490,7 @@ __Pyx_GOTREF(item); *(temps[index]) = item; } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_6), 4) < 0) __PYX_ERR(0, 699, __pyx_L74_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_6), 4) < 0) __PYX_ERR(0, 709, __pyx_L74_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L94_unpacking_done; @@ -15264,7 +15498,7 @@ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 699, __pyx_L74_error) + __PYX_ERR(0, 709, __pyx_L74_error) __pyx_L94_unpacking_done:; } __Pyx_DECREF_SET(__pyx_v_flag, __pyx_t_8); @@ -15276,7 +15510,7 @@ __Pyx_DECREF_SET(__pyx_v_bp_type, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":697 + /* "_pydevd_bundle/pydevd_cython.pyx":707 * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: * result = plugin_manager.get_breakpoint(main_debugger, self, frame, event, self._args) * if result: # <<<<<<<<<<<<<< @@ -15285,7 +15519,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":695 + /* "_pydevd_bundle/pydevd_cython.pyx":705 * if step_cmd == CMD_STEP_OVER and stop_frame is frame and (is_line or is_return): * stop = False #we don't stop on breakpoint if we have to stop by step-over (it will be processed later) * elif plugin_manager is not None and main_debugger.has_plugin_line_breaks: # <<<<<<<<<<<<<< @@ -15295,17 +15529,17 @@ } __pyx_L80:; - /* "_pydevd_bundle/pydevd_cython.pyx":701 + /* "_pydevd_bundle/pydevd_cython.pyx":711 * flag, breakpoint, new_frame, bp_type = result * * if breakpoint: # <<<<<<<<<<<<<< * #ok, hit breakpoint, now, we have to discover if it is a conditional breakpoint * # lets do the conditional stuff here */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoint); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 701, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoint); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 711, __pyx_L74_error) if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":704 + /* "_pydevd_bundle/pydevd_cython.pyx":714 * #ok, hit breakpoint, now, we have to discover if it is a conditional breakpoint * # lets do the conditional stuff here * if stop or exist_result: # <<<<<<<<<<<<<< @@ -15323,19 +15557,19 @@ __pyx_L97_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":705 + /* "_pydevd_bundle/pydevd_cython.pyx":715 * # lets do the conditional stuff here * if stop or exist_result: * condition = breakpoint.condition # <<<<<<<<<<<<<< * if condition is not None: * eval_result = handle_breakpoint_condition(main_debugger, info, breakpoint, new_frame) */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_condition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 705, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_condition); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 715, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_condition = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":706 + /* "_pydevd_bundle/pydevd_cython.pyx":716 * if stop or exist_result: * condition = breakpoint.condition * if condition is not None: # <<<<<<<<<<<<<< @@ -15346,16 +15580,16 @@ __pyx_t_12 = (__pyx_t_10 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":707 + /* "_pydevd_bundle/pydevd_cython.pyx":717 * condition = breakpoint.condition * if condition is not None: * eval_result = handle_breakpoint_condition(main_debugger, info, breakpoint, new_frame) # <<<<<<<<<<<<<< * if not eval_result: * return self.trace_dispatch */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_handle_breakpoint_condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 707, __pyx_L74_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_handle_breakpoint_condition); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 717, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_4); - if (unlikely(!__pyx_v_new_frame)) { __Pyx_RaiseUnboundLocalError("new_frame"); __PYX_ERR(0, 707, __pyx_L74_error) } + if (unlikely(!__pyx_v_new_frame)) { __Pyx_RaiseUnboundLocalError("new_frame"); __PYX_ERR(0, 717, __pyx_L74_error) } __pyx_t_7 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -15371,7 +15605,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_main_debugger, ((PyObject *)__pyx_v_info), __pyx_v_breakpoint, __pyx_v_new_frame}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 717, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -15379,13 +15613,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_main_debugger, ((PyObject *)__pyx_v_info), __pyx_v_breakpoint, __pyx_v_new_frame}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 717, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_8 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L74_error) + __pyx_t_8 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 717, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -15402,7 +15636,7 @@ __Pyx_INCREF(__pyx_v_new_frame); __Pyx_GIVEREF(__pyx_v_new_frame); PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_5, __pyx_v_new_frame); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 717, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -15410,18 +15644,18 @@ __pyx_v_eval_result = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":708 + /* "_pydevd_bundle/pydevd_cython.pyx":718 * if condition is not None: * eval_result = handle_breakpoint_condition(main_debugger, info, breakpoint, new_frame) * if not eval_result: # <<<<<<<<<<<<<< * return self.trace_dispatch * */ - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_eval_result); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 708, __pyx_L74_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_eval_result); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 718, __pyx_L74_error) __pyx_t_10 = ((!__pyx_t_12) != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":709 + /* "_pydevd_bundle/pydevd_cython.pyx":719 * eval_result = handle_breakpoint_condition(main_debugger, info, breakpoint, new_frame) * if not eval_result: * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -15429,13 +15663,13 @@ * if breakpoint.expression is not None: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 719, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L78_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":708 + /* "_pydevd_bundle/pydevd_cython.pyx":718 * if condition is not None: * eval_result = handle_breakpoint_condition(main_debugger, info, breakpoint, new_frame) * if not eval_result: # <<<<<<<<<<<<<< @@ -15444,7 +15678,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":706 + /* "_pydevd_bundle/pydevd_cython.pyx":716 * if stop or exist_result: * condition = breakpoint.condition * if condition is not None: # <<<<<<<<<<<<<< @@ -15453,30 +15687,30 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":711 + /* "_pydevd_bundle/pydevd_cython.pyx":721 * return self.trace_dispatch * * if breakpoint.expression is not None: # <<<<<<<<<<<<<< * handle_breakpoint_expression(breakpoint, info, new_frame) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_expression); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 711, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_expression); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = (__pyx_t_1 != Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = (__pyx_t_10 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":712 + /* "_pydevd_bundle/pydevd_cython.pyx":722 * * if breakpoint.expression is not None: * handle_breakpoint_expression(breakpoint, info, new_frame) # <<<<<<<<<<<<<< * * if not main_debugger.first_breakpoint_reached: */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_handle_breakpoint_expression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 712, __pyx_L74_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_handle_breakpoint_expression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 722, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_4); - if (unlikely(!__pyx_v_new_frame)) { __Pyx_RaiseUnboundLocalError("new_frame"); __PYX_ERR(0, 712, __pyx_L74_error) } + if (unlikely(!__pyx_v_new_frame)) { __Pyx_RaiseUnboundLocalError("new_frame"); __PYX_ERR(0, 722, __pyx_L74_error) } __pyx_t_8 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -15492,7 +15726,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_breakpoint, ((PyObject *)__pyx_v_info), __pyx_v_new_frame}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 712, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -15500,13 +15734,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_breakpoint, ((PyObject *)__pyx_v_info), __pyx_v_new_frame}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 712, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_7 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L74_error) + __pyx_t_7 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 722, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -15520,14 +15754,14 @@ __Pyx_INCREF(__pyx_v_new_frame); __Pyx_GIVEREF(__pyx_v_new_frame); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_5, __pyx_v_new_frame); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 712, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":711 + /* "_pydevd_bundle/pydevd_cython.pyx":721 * return self.trace_dispatch * * if breakpoint.expression is not None: # <<<<<<<<<<<<<< @@ -15536,21 +15770,21 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":714 + /* "_pydevd_bundle/pydevd_cython.pyx":724 * handle_breakpoint_expression(breakpoint, info, new_frame) * * if not main_debugger.first_breakpoint_reached: # <<<<<<<<<<<<<< * if is_call: * back = frame.f_back */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_first_breakpoint_reached); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 714, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_first_breakpoint_reached); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 724, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 714, __pyx_L74_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 724, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = ((!__pyx_t_12) != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":715 + /* "_pydevd_bundle/pydevd_cython.pyx":725 * * if not main_debugger.first_breakpoint_reached: * if is_call: # <<<<<<<<<<<<<< @@ -15560,19 +15794,19 @@ __pyx_t_10 = (__pyx_v_is_call != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":716 + /* "_pydevd_bundle/pydevd_cython.pyx":726 * if not main_debugger.first_breakpoint_reached: * if is_call: * back = frame.f_back # <<<<<<<<<<<<<< * if back is not None: * # When we start debug session, we call execfile in pydevd run function. It produces an additional */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 716, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 726, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_back = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":717 + /* "_pydevd_bundle/pydevd_cython.pyx":727 * if is_call: * back = frame.f_back * if back is not None: # <<<<<<<<<<<<<< @@ -15583,14 +15817,14 @@ __pyx_t_12 = (__pyx_t_10 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":720 + /* "_pydevd_bundle/pydevd_cython.pyx":730 * # When we start debug session, we call execfile in pydevd run function. It produces an additional * # 'call' event for tracing and we stop on the first line of code twice. * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) # <<<<<<<<<<<<<< * if (base == DEBUG_START[0] and back.f_code.co_name == DEBUG_START[1]) or \ * (base == DEBUG_START_PY3K[0] and back.f_code.co_name == DEBUG_START_PY3K[1]): */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 720, __pyx_L74_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 730, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { @@ -15603,13 +15837,13 @@ } } if (!__pyx_t_7) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 720, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_back); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 730, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_back}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 720, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 730, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -15617,19 +15851,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_7, __pyx_v_back}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 720, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 730, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 720, __pyx_L74_error) + __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 730, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL; __Pyx_INCREF(__pyx_v_back); __Pyx_GIVEREF(__pyx_v_back); PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_back); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 720, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 730, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } @@ -15637,15 +15871,11 @@ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 720, __pyx_L74_error) + __PYX_ERR(0, 730, __pyx_L74_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -15661,17 +15891,17 @@ __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_7); #else - __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 720, __pyx_L74_error) + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 730, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 720, __pyx_L74_error) + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 730, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 720, __pyx_L74_error) + __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 730, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 720, __pyx_L74_error) + __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 730, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = Py_TYPE(__pyx_t_6)->tp_iternext; @@ -15681,7 +15911,7 @@ __Pyx_GOTREF(__pyx_t_8); index = 2; __pyx_t_7 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_7)) goto __pyx_L105_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_6), 3) < 0) __PYX_ERR(0, 720, __pyx_L74_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_6), 3) < 0) __PYX_ERR(0, 730, __pyx_L74_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L106_unpacking_done; @@ -15689,7 +15919,7 @@ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 720, __pyx_L74_error) + __PYX_ERR(0, 730, __pyx_L74_error) __pyx_L106_unpacking_done:; } __pyx_v__ = __pyx_t_4; @@ -15699,40 +15929,40 @@ __pyx_v_base = __pyx_t_7; __pyx_t_7 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":721 + /* "_pydevd_bundle/pydevd_cython.pyx":731 * # 'call' event for tracing and we stop on the first line of code twice. * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) * if (base == DEBUG_START[0] and back.f_code.co_name == DEBUG_START[1]) or \ # <<<<<<<<<<<<<< * (base == DEBUG_START_PY3K[0] and back.f_code.co_name == DEBUG_START_PY3K[1]): * stop = False */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L74_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 731, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L74_error) + __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 731, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_v_base, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L74_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_v_base, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 731, __pyx_L74_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 721, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 731, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_10) { goto __pyx_L109_next_or; } else { } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_back, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_back, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 731, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L74_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 731, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L74_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 731, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L74_error) + __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 731, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L74_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 731, __pyx_L74_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 721, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 731, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_10) { } else { @@ -15741,46 +15971,46 @@ } __pyx_L109_next_or:; - /* "_pydevd_bundle/pydevd_cython.pyx":722 + /* "_pydevd_bundle/pydevd_cython.pyx":732 * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) * if (base == DEBUG_START[0] and back.f_code.co_name == DEBUG_START[1]) or \ * (base == DEBUG_START_PY3K[0] and back.f_code.co_name == DEBUG_START_PY3K[1]): # <<<<<<<<<<<<<< * stop = False * main_debugger.first_breakpoint_reached = True */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START_PY3K); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L74_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START_PY3K); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 722, __pyx_L74_error) + __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_v_base, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L74_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_v_base, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L74_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 722, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 732, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_10) { } else { __pyx_t_12 = __pyx_t_10; goto __pyx_L108_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_back, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_back, __pyx_n_s_f_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 722, __pyx_L74_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_co_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START_PY3K); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L74_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START_PY3K); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 722, __pyx_L74_error) + __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 732, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_t_8, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L74_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_t_8, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L74_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 722, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 732, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = __pyx_t_10; __pyx_L108_bool_binop_done:; - /* "_pydevd_bundle/pydevd_cython.pyx":721 + /* "_pydevd_bundle/pydevd_cython.pyx":731 * # 'call' event for tracing and we stop on the first line of code twice. * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) * if (base == DEBUG_START[0] and back.f_code.co_name == DEBUG_START[1]) or \ # <<<<<<<<<<<<<< @@ -15789,7 +16019,7 @@ */ if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":723 + /* "_pydevd_bundle/pydevd_cython.pyx":733 * if (base == DEBUG_START[0] and back.f_code.co_name == DEBUG_START[1]) or \ * (base == DEBUG_START_PY3K[0] and back.f_code.co_name == DEBUG_START_PY3K[1]): * stop = False # <<<<<<<<<<<<<< @@ -15798,16 +16028,16 @@ */ __pyx_v_stop = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":724 + /* "_pydevd_bundle/pydevd_cython.pyx":734 * (base == DEBUG_START_PY3K[0] and back.f_code.co_name == DEBUG_START_PY3K[1]): * stop = False * main_debugger.first_breakpoint_reached = True # <<<<<<<<<<<<<< * else: * # if the frame is traced after breakpoint stop, */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_main_debugger, __pyx_n_s_first_breakpoint_reached, Py_True) < 0) __PYX_ERR(0, 724, __pyx_L74_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_main_debugger, __pyx_n_s_first_breakpoint_reached, Py_True) < 0) __PYX_ERR(0, 734, __pyx_L74_error) - /* "_pydevd_bundle/pydevd_cython.pyx":721 + /* "_pydevd_bundle/pydevd_cython.pyx":731 * # 'call' event for tracing and we stop on the first line of code twice. * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) * if (base == DEBUG_START[0] and back.f_code.co_name == DEBUG_START[1]) or \ # <<<<<<<<<<<<<< @@ -15816,7 +16046,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":717 + /* "_pydevd_bundle/pydevd_cython.pyx":727 * if is_call: * back = frame.f_back * if back is not None: # <<<<<<<<<<<<<< @@ -15825,7 +16055,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":715 + /* "_pydevd_bundle/pydevd_cython.pyx":725 * * if not main_debugger.first_breakpoint_reached: * if is_call: # <<<<<<<<<<<<<< @@ -15834,7 +16064,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":714 + /* "_pydevd_bundle/pydevd_cython.pyx":724 * handle_breakpoint_expression(breakpoint, info, new_frame) * * if not main_debugger.first_breakpoint_reached: # <<<<<<<<<<<<<< @@ -15843,7 +16073,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":704 + /* "_pydevd_bundle/pydevd_cython.pyx":714 * #ok, hit breakpoint, now, we have to discover if it is a conditional breakpoint * # lets do the conditional stuff here * if stop or exist_result: # <<<<<<<<<<<<<< @@ -15852,7 +16082,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":701 + /* "_pydevd_bundle/pydevd_cython.pyx":711 * flag, breakpoint, new_frame, bp_type = result * * if breakpoint: # <<<<<<<<<<<<<< @@ -15862,7 +16092,7 @@ goto __pyx_L95; } - /* "_pydevd_bundle/pydevd_cython.pyx":728 + /* "_pydevd_bundle/pydevd_cython.pyx":738 * # if the frame is traced after breakpoint stop, * # but the file should be ignored while stepping because of filters * if step_cmd != -1: # <<<<<<<<<<<<<< @@ -15873,23 +16103,23 @@ __pyx_t_12 = ((__pyx_v_step_cmd != -1L) != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":729 + /* "_pydevd_bundle/pydevd_cython.pyx":739 * # but the file should be ignored while stepping because of filters * if step_cmd != -1: * if main_debugger.is_filter_enabled and main_debugger.is_ignored_by_filters(filename): # <<<<<<<<<<<<<< * # ignore files matching stepping filters * return self.trace_dispatch */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_filter_enabled); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 729, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_filter_enabled); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 739, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 729, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 739, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_10) { } else { __pyx_t_12 = __pyx_t_10; goto __pyx_L114_bool_binop_done; } - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_ignored_by_filters); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 729, __pyx_L74_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_ignored_by_filters); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 739, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -15902,13 +16132,13 @@ } } if (!__pyx_t_8) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 729, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 739, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_filename}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 729, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 739, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -15916,31 +16146,31 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_8, __pyx_v_filename}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 729, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 739, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 729, __pyx_L74_error) + __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 739, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8); __pyx_t_8 = NULL; __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_filename); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 729, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 739, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 729, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 739, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = __pyx_t_10; __pyx_L114_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":731 + /* "_pydevd_bundle/pydevd_cython.pyx":741 * if main_debugger.is_filter_enabled and main_debugger.is_ignored_by_filters(filename): * # ignore files matching stepping filters * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -15948,13 +16178,13 @@ * # ignore library files while stepping */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 731, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 741, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L78_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":729 + /* "_pydevd_bundle/pydevd_cython.pyx":739 * # but the file should be ignored while stepping because of filters * if step_cmd != -1: * if main_debugger.is_filter_enabled and main_debugger.is_ignored_by_filters(filename): # <<<<<<<<<<<<<< @@ -15963,23 +16193,23 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":732 + /* "_pydevd_bundle/pydevd_cython.pyx":742 * # ignore files matching stepping filters * return self.trace_dispatch * if main_debugger.is_filter_libraries and main_debugger.not_in_scope(filename): # <<<<<<<<<<<<<< * # ignore library files while stepping * return self.trace_dispatch */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_filter_libraries); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_is_filter_libraries); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 742, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 732, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 742, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_10) { } else { __pyx_t_12 = __pyx_t_10; goto __pyx_L117_bool_binop_done; } - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_not_in_scope); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 732, __pyx_L74_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_not_in_scope); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 742, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -15992,13 +16222,13 @@ } } if (!__pyx_t_4) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 742, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_filename}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 742, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -16006,31 +16236,31 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_filename}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 742, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L74_error) + __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 742, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_filename); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 742, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 732, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 742, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = __pyx_t_10; __pyx_L117_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":734 + /* "_pydevd_bundle/pydevd_cython.pyx":744 * if main_debugger.is_filter_libraries and main_debugger.not_in_scope(filename): * # ignore library files while stepping * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -16038,13 +16268,13 @@ * if main_debugger.show_return_values or main_debugger.remove_return_values_flag: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 734, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 744, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L78_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":732 + /* "_pydevd_bundle/pydevd_cython.pyx":742 * # ignore files matching stepping filters * return self.trace_dispatch * if main_debugger.is_filter_libraries and main_debugger.not_in_scope(filename): # <<<<<<<<<<<<<< @@ -16053,7 +16283,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":728 + /* "_pydevd_bundle/pydevd_cython.pyx":738 * # if the frame is traced after breakpoint stop, * # but the file should be ignored while stepping because of filters * if step_cmd != -1: # <<<<<<<<<<<<<< @@ -16064,38 +16294,38 @@ } __pyx_L95:; - /* "_pydevd_bundle/pydevd_cython.pyx":736 + /* "_pydevd_bundle/pydevd_cython.pyx":746 * return self.trace_dispatch * * if main_debugger.show_return_values or main_debugger.remove_return_values_flag: # <<<<<<<<<<<<<< * self.manage_return_values(main_debugger, frame, event, arg) * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 736, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_show_return_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 736, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 746, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_10) { } else { __pyx_t_12 = __pyx_t_10; goto __pyx_L120_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 736, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_remove_return_values_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 736, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 746, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = __pyx_t_10; __pyx_L120_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":737 + /* "_pydevd_bundle/pydevd_cython.pyx":747 * * if main_debugger.show_return_values or main_debugger.remove_return_values_flag: * self.manage_return_values(main_debugger, frame, event, arg) # <<<<<<<<<<<<<< * * if stop: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_manage_return_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 737, __pyx_L74_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_manage_return_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 747, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_5 = 0; @@ -16112,7 +16342,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 737, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 747, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -16120,13 +16350,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 737, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 747, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_4 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 737, __pyx_L74_error) + __pyx_t_4 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 747, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -16143,14 +16373,14 @@ __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_5, __pyx_v_arg); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 737, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 747, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":736 + /* "_pydevd_bundle/pydevd_cython.pyx":746 * return self.trace_dispatch * * if main_debugger.show_return_values or main_debugger.remove_return_values_flag: # <<<<<<<<<<<<<< @@ -16159,7 +16389,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":739 + /* "_pydevd_bundle/pydevd_cython.pyx":749 * self.manage_return_values(main_debugger, frame, event, arg) * * if stop: # <<<<<<<<<<<<<< @@ -16169,16 +16399,16 @@ __pyx_t_12 = (__pyx_v_stop != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":740 + /* "_pydevd_bundle/pydevd_cython.pyx":750 * * if stop: * self.set_suspend(thread, CMD_SET_BREAK) # <<<<<<<<<<<<<< * if breakpoint and breakpoint.suspend_policy == "ALL": * main_debugger.suspend_all_other_threads(thread) */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 740, __pyx_L74_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 750, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_SET_BREAK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 740, __pyx_L74_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_SET_BREAK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 750, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = NULL; __pyx_t_5 = 0; @@ -16195,7 +16425,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_thread, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 740, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 750, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -16204,14 +16434,14 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_thread, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 740, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 750, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 740, __pyx_L74_error) + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 750, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL; @@ -16222,42 +16452,42 @@ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 740, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 750, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":741 + /* "_pydevd_bundle/pydevd_cython.pyx":751 * if stop: * self.set_suspend(thread, CMD_SET_BREAK) * if breakpoint and breakpoint.suspend_policy == "ALL": # <<<<<<<<<<<<<< * main_debugger.suspend_all_other_threads(thread) * elif flag and plugin_manager is not None: */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoint); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 741, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_breakpoint); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 751, __pyx_L74_error) if (__pyx_t_10) { } else { __pyx_t_12 = __pyx_t_10; goto __pyx_L124_bool_binop_done; } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_suspend_policy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 741, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_breakpoint, __pyx_n_s_suspend_policy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 751, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_ALL, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 741, __pyx_L74_error) + __pyx_t_10 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_ALL, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 751, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = __pyx_t_10; __pyx_L124_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":742 + /* "_pydevd_bundle/pydevd_cython.pyx":752 * self.set_suspend(thread, CMD_SET_BREAK) * if breakpoint and breakpoint.suspend_policy == "ALL": * main_debugger.suspend_all_other_threads(thread) # <<<<<<<<<<<<<< * elif flag and plugin_manager is not None: * result = plugin_manager.suspend(main_debugger, thread, frame, bp_type) */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_suspend_all_other_threads); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 742, __pyx_L74_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_suspend_all_other_threads); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 752, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { @@ -16270,13 +16500,13 @@ } } if (!__pyx_t_6) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_thread); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 742, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_thread); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 752, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_thread}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 742, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 752, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -16284,19 +16514,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_thread}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 742, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 752, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 742, __pyx_L74_error) + __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 752, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_thread); __Pyx_GIVEREF(__pyx_v_thread); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_thread); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 742, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 752, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } @@ -16304,7 +16534,7 @@ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":741 + /* "_pydevd_bundle/pydevd_cython.pyx":751 * if stop: * self.set_suspend(thread, CMD_SET_BREAK) * if breakpoint and breakpoint.suspend_policy == "ALL": # <<<<<<<<<<<<<< @@ -16313,7 +16543,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":739 + /* "_pydevd_bundle/pydevd_cython.pyx":749 * self.manage_return_values(main_debugger, frame, event, arg) * * if stop: # <<<<<<<<<<<<<< @@ -16323,14 +16553,14 @@ goto __pyx_L122; } - /* "_pydevd_bundle/pydevd_cython.pyx":743 + /* "_pydevd_bundle/pydevd_cython.pyx":753 * if breakpoint and breakpoint.suspend_policy == "ALL": * main_debugger.suspend_all_other_threads(thread) * elif flag and plugin_manager is not None: # <<<<<<<<<<<<<< * result = plugin_manager.suspend(main_debugger, thread, frame, bp_type) * if result: */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 743, __pyx_L74_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 753, __pyx_L74_error) if (__pyx_t_10) { } else { __pyx_t_12 = __pyx_t_10; @@ -16342,14 +16572,14 @@ __pyx_L126_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":744 + /* "_pydevd_bundle/pydevd_cython.pyx":754 * main_debugger.suspend_all_other_threads(thread) * elif flag and plugin_manager is not None: * result = plugin_manager.suspend(main_debugger, thread, frame, bp_type) # <<<<<<<<<<<<<< * if result: * frame = result */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_suspend); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 744, __pyx_L74_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_suspend); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 754, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -16366,7 +16596,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_main_debugger, __pyx_v_thread, __pyx_v_frame, __pyx_v_bp_type}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 744, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 754, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else @@ -16374,13 +16604,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_main_debugger, __pyx_v_thread, __pyx_v_frame, __pyx_v_bp_type}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 744, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 754, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 744, __pyx_L74_error) + __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 754, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; @@ -16397,7 +16627,7 @@ __Pyx_INCREF(__pyx_v_bp_type); __Pyx_GIVEREF(__pyx_v_bp_type); PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, __pyx_v_bp_type); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 744, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 754, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -16405,17 +16635,17 @@ __Pyx_XDECREF_SET(__pyx_v_result, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":745 + /* "_pydevd_bundle/pydevd_cython.pyx":755 * elif flag and plugin_manager is not None: * result = plugin_manager.suspend(main_debugger, thread, frame, bp_type) * if result: # <<<<<<<<<<<<<< * frame = result * */ - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 745, __pyx_L74_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 755, __pyx_L74_error) if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":746 + /* "_pydevd_bundle/pydevd_cython.pyx":756 * result = plugin_manager.suspend(main_debugger, thread, frame, bp_type) * if result: * frame = result # <<<<<<<<<<<<<< @@ -16425,7 +16655,7 @@ __Pyx_INCREF(__pyx_v_result); __Pyx_DECREF_SET(__pyx_v_frame, __pyx_v_result); - /* "_pydevd_bundle/pydevd_cython.pyx":745 + /* "_pydevd_bundle/pydevd_cython.pyx":755 * elif flag and plugin_manager is not None: * result = plugin_manager.suspend(main_debugger, thread, frame, bp_type) * if result: # <<<<<<<<<<<<<< @@ -16434,7 +16664,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":743 + /* "_pydevd_bundle/pydevd_cython.pyx":753 * if breakpoint and breakpoint.suspend_policy == "ALL": * main_debugger.suspend_all_other_threads(thread) * elif flag and plugin_manager is not None: # <<<<<<<<<<<<<< @@ -16444,32 +16674,32 @@ } __pyx_L122:; - /* "_pydevd_bundle/pydevd_cython.pyx":749 + /* "_pydevd_bundle/pydevd_cython.pyx":759 * * # if thread has a suspend flag, we suspend with a busy wait * if info.pydev_state == STATE_SUSPEND: # <<<<<<<<<<<<<< * self.do_wait_suspend(thread, frame, event, arg) * return self.trace_dispatch */ - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 749, __pyx_L74_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_state); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 759, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 749, __pyx_L74_error) + __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 759, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 749, __pyx_L74_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 759, __pyx_L74_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 749, __pyx_L74_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 759, __pyx_L74_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":750 + /* "_pydevd_bundle/pydevd_cython.pyx":760 * # if thread has a suspend flag, we suspend with a busy wait * if info.pydev_state == STATE_SUSPEND: * self.do_wait_suspend(thread, frame, event, arg) # <<<<<<<<<<<<<< * return self.trace_dispatch * else: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 750, __pyx_L74_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 760, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; __pyx_t_5 = 0; @@ -16486,7 +16716,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 750, __pyx_L74_error) + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 760, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); } else @@ -16494,13 +16724,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 750, __pyx_L74_error) + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 760, __pyx_L74_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); } else #endif { - __pyx_t_4 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 750, __pyx_L74_error) + __pyx_t_4 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 760, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -16517,14 +16747,14 @@ __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_5, __pyx_v_arg); - __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 750, __pyx_L74_error) + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 760, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":751 + /* "_pydevd_bundle/pydevd_cython.pyx":761 * if info.pydev_state == STATE_SUSPEND: * self.do_wait_suspend(thread, frame, event, arg) * return self.trace_dispatch # <<<<<<<<<<<<<< @@ -16532,13 +16762,13 @@ * if breakpoint is None and not (is_return or is_exception_event): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 751, __pyx_L74_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 761, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L78_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":749 + /* "_pydevd_bundle/pydevd_cython.pyx":759 * * # if thread has a suspend flag, we suspend with a busy wait * if info.pydev_state == STATE_SUSPEND: # <<<<<<<<<<<<<< @@ -16547,7 +16777,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":753 + /* "_pydevd_bundle/pydevd_cython.pyx":763 * return self.trace_dispatch * else: * if breakpoint is None and not (is_return or is_exception_event): # <<<<<<<<<<<<<< @@ -16576,20 +16806,20 @@ __pyx_L131_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":755 + /* "_pydevd_bundle/pydevd_cython.pyx":765 * if breakpoint is None and not (is_return or is_exception_event): * # No stop from anyone and no breakpoint found in line (cache that). * frame_skips_cache[line_cache_key] = 0 # <<<<<<<<<<<<<< - * - * except: + * except KeyboardInterrupt: + * self.clear_run_state(info) */ if (unlikely(__pyx_v_frame_skips_cache == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 755, __pyx_L74_error) + __PYX_ERR(0, 765, __pyx_L74_error) } - if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_line_cache_key, __pyx_int_0) < 0)) __PYX_ERR(0, 755, __pyx_L74_error) + if (unlikely(PyDict_SetItem(__pyx_v_frame_skips_cache, __pyx_v_line_cache_key, __pyx_int_0) < 0)) __PYX_ERR(0, 765, __pyx_L74_error) - /* "_pydevd_bundle/pydevd_cython.pyx":753 + /* "_pydevd_bundle/pydevd_cython.pyx":763 * return self.trace_dispatch * else: * if breakpoint is None and not (is_return or is_exception_event): # <<<<<<<<<<<<<< @@ -16599,7 +16829,7 @@ } } - /* "_pydevd_bundle/pydevd_cython.pyx":679 + /* "_pydevd_bundle/pydevd_cython.pyx":689 * #print('NOT skipped', frame.f_lineno, frame.f_code.co_name, event) * * try: # <<<<<<<<<<<<<< @@ -16621,69 +16851,153 @@ __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":757 + /* "_pydevd_bundle/pydevd_cython.pyx":766 + * # No stop from anyone and no breakpoint found in line (cache that). * frame_skips_cache[line_cache_key] = 0 - * + * except KeyboardInterrupt: # <<<<<<<<<<<<<< + * self.clear_run_state(info) + * raise + */ + __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyboardInterrupt); + if (__pyx_t_5) { + __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_4) < 0) __PYX_ERR(0, 766, __pyx_L76_except_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_4); + + /* "_pydevd_bundle/pydevd_cython.pyx":767 + * frame_skips_cache[line_cache_key] = 0 + * except KeyboardInterrupt: + * self.clear_run_state(info) # <<<<<<<<<<<<<< + * raise + * except: + */ + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear_run_state); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 767, __pyx_L76_except_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + if (!__pyx_t_3) { + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_8, ((PyObject *)__pyx_v_info)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 767, __pyx_L76_except_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[2] = {__pyx_t_3, ((PyObject *)__pyx_v_info)}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 767, __pyx_L76_except_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[2] = {__pyx_t_3, ((PyObject *)__pyx_v_info)}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 767, __pyx_L76_except_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + { + __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 767, __pyx_L76_except_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL; + __Pyx_INCREF(((PyObject *)__pyx_v_info)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_info)); + PyTuple_SET_ITEM(__pyx_t_2, 0+1, ((PyObject *)__pyx_v_info)); + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 767, __pyx_L76_except_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "_pydevd_bundle/pydevd_cython.pyx":768 + * except KeyboardInterrupt: + * self.clear_run_state(info) + * raise # <<<<<<<<<<<<<< + * except: + * traceback.print_exc() + */ + __Pyx_GIVEREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ErrRestoreWithState(__pyx_t_6, __pyx_t_7, __pyx_t_4); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_4 = 0; + __PYX_ERR(0, 768, __pyx_L76_except_error) + } + + /* "_pydevd_bundle/pydevd_cython.pyx":769 + * self.clear_run_state(info) + * raise * except: # <<<<<<<<<<<<<< * traceback.print_exc() * raise */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_4) < 0) __PYX_ERR(0, 757, __pyx_L76_except_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(0, 769, __pyx_L76_except_error) __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_6); - /* "_pydevd_bundle/pydevd_cython.pyx":758 - * + /* "_pydevd_bundle/pydevd_cython.pyx":770 + * raise * except: * traceback.print_exc() # <<<<<<<<<<<<<< * raise * */ - __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 758, __pyx_L76_except_error) + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L76_except_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 758, __pyx_L76_except_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 770, __pyx_L76_except_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); + __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_8) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 758, __pyx_L76_except_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L76_except_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { - __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 758, __pyx_L76_except_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L76_except_error) } __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":759 + /* "_pydevd_bundle/pydevd_cython.pyx":771 * except: * traceback.print_exc() * raise # <<<<<<<<<<<<<< * * #step handling. We stop when we hit the right frame */ - __Pyx_GIVEREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); - __Pyx_XGIVEREF(__pyx_t_4); - __Pyx_ErrRestoreWithState(__pyx_t_6, __pyx_t_7, __pyx_t_4); - __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_4 = 0; - __PYX_ERR(0, 759, __pyx_L76_except_error) + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_7, __pyx_t_6); + __pyx_t_4 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; + __PYX_ERR(0, 771, __pyx_L76_except_error) } __pyx_L76_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":679 + /* "_pydevd_bundle/pydevd_cython.pyx":689 * #print('NOT skipped', frame.f_lineno, frame.f_code.co_name, event) * * try: # <<<<<<<<<<<<<< @@ -16704,7 +17018,7 @@ __pyx_L79_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":762 + /* "_pydevd_bundle/pydevd_cython.pyx":774 * * #step handling. We stop when we hit the right frame * try: # <<<<<<<<<<<<<< @@ -16720,7 +17034,7 @@ __Pyx_XGOTREF(__pyx_t_16); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":763 + /* "_pydevd_bundle/pydevd_cython.pyx":775 * #step handling. We stop when we hit the right frame * try: * should_skip = 0 # <<<<<<<<<<<<<< @@ -16729,24 +17043,24 @@ */ __pyx_v_should_skip = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":764 + /* "_pydevd_bundle/pydevd_cython.pyx":776 * try: * should_skip = 0 * if pydevd_dont_trace.should_trace_hook is not None: # <<<<<<<<<<<<<< * if self.should_skip == -1: * # I.e.: cache the result on self.should_skip (no need to evaluate the same frame multiple times). */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 764, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 764, __pyx_L137_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 776, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_12 = (__pyx_t_7 != Py_None); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = (__pyx_t_12 != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":765 + /* "_pydevd_bundle/pydevd_cython.pyx":777 * should_skip = 0 * if pydevd_dont_trace.should_trace_hook is not None: * if self.should_skip == -1: # <<<<<<<<<<<<<< @@ -16756,51 +17070,51 @@ __pyx_t_9 = ((__pyx_v_self->should_skip == -1L) != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":769 + /* "_pydevd_bundle/pydevd_cython.pyx":781 * # Note that on a code reload, we won't re-evaluate this because in practice, the frame.f_code * # Which will be handled by this frame is read-only, so, we can cache it safely. * if not pydevd_dont_trace.should_trace_hook(frame, filename): # <<<<<<<<<<<<<< * # -1, 0, 1 to be Cython-friendly * should_skip = self.should_skip = 1 */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 769, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 769, __pyx_L137_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 781, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = NULL; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 781, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_4); + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); + __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_frame, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 769, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_frame, __pyx_v_filename}; + __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_frame, __pyx_v_filename}; - __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 769, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_frame, __pyx_v_filename}; + __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_7); } else #endif { - __pyx_t_1 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 769, __pyx_L137_error) + __pyx_t_1 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; + if (__pyx_t_6) { + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); @@ -16808,17 +17122,17 @@ __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_5, __pyx_v_filename); - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 769, __pyx_L137_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 769, __pyx_L137_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 781, __pyx_L139_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_12 = ((!__pyx_t_9) != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":771 + /* "_pydevd_bundle/pydevd_cython.pyx":783 * if not pydevd_dont_trace.should_trace_hook(frame, filename): * # -1, 0, 1 to be Cython-friendly * should_skip = self.should_skip = 1 # <<<<<<<<<<<<<< @@ -16828,17 +17142,17 @@ __pyx_v_should_skip = 1; __pyx_v_self->should_skip = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":769 + /* "_pydevd_bundle/pydevd_cython.pyx":781 * # Note that on a code reload, we won't re-evaluate this because in practice, the frame.f_code * # Which will be handled by this frame is read-only, so, we can cache it safely. * if not pydevd_dont_trace.should_trace_hook(frame, filename): # <<<<<<<<<<<<<< * # -1, 0, 1 to be Cython-friendly * should_skip = self.should_skip = 1 */ - goto __pyx_L145; + goto __pyx_L147; } - /* "_pydevd_bundle/pydevd_cython.pyx":773 + /* "_pydevd_bundle/pydevd_cython.pyx":785 * should_skip = self.should_skip = 1 * else: * should_skip = self.should_skip = 0 # <<<<<<<<<<<<<< @@ -16849,19 +17163,19 @@ __pyx_v_should_skip = 0; __pyx_v_self->should_skip = 0; } - __pyx_L145:; + __pyx_L147:; - /* "_pydevd_bundle/pydevd_cython.pyx":765 + /* "_pydevd_bundle/pydevd_cython.pyx":777 * should_skip = 0 * if pydevd_dont_trace.should_trace_hook is not None: * if self.should_skip == -1: # <<<<<<<<<<<<<< * # I.e.: cache the result on self.should_skip (no need to evaluate the same frame multiple times). * # Note that on a code reload, we won't re-evaluate this because in practice, the frame.f_code */ - goto __pyx_L144; + goto __pyx_L146; } - /* "_pydevd_bundle/pydevd_cython.pyx":775 + /* "_pydevd_bundle/pydevd_cython.pyx":787 * should_skip = self.should_skip = 0 * else: * should_skip = self.should_skip # <<<<<<<<<<<<<< @@ -16872,9 +17186,9 @@ __pyx_t_5 = __pyx_v_self->should_skip; __pyx_v_should_skip = __pyx_t_5; } - __pyx_L144:; + __pyx_L146:; - /* "_pydevd_bundle/pydevd_cython.pyx":764 + /* "_pydevd_bundle/pydevd_cython.pyx":776 * try: * should_skip = 0 * if pydevd_dont_trace.should_trace_hook is not None: # <<<<<<<<<<<<<< @@ -16883,7 +17197,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":777 + /* "_pydevd_bundle/pydevd_cython.pyx":789 * should_skip = self.should_skip * * plugin_stop = False # <<<<<<<<<<<<<< @@ -16893,7 +17207,7 @@ __Pyx_INCREF(Py_False); __pyx_v_plugin_stop = Py_False; - /* "_pydevd_bundle/pydevd_cython.pyx":778 + /* "_pydevd_bundle/pydevd_cython.pyx":790 * * plugin_stop = False * if should_skip: # <<<<<<<<<<<<<< @@ -16903,7 +17217,7 @@ __pyx_t_12 = (__pyx_v_should_skip != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":779 + /* "_pydevd_bundle/pydevd_cython.pyx":791 * plugin_stop = False * if should_skip: * stop = False # <<<<<<<<<<<<<< @@ -16912,35 +17226,35 @@ */ __pyx_v_stop = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":778 + /* "_pydevd_bundle/pydevd_cython.pyx":790 * * plugin_stop = False * if should_skip: # <<<<<<<<<<<<<< * stop = False * */ - goto __pyx_L146; + goto __pyx_L148; } - /* "_pydevd_bundle/pydevd_cython.pyx":781 + /* "_pydevd_bundle/pydevd_cython.pyx":793 * stop = False * * elif step_cmd == CMD_STEP_INTO: # <<<<<<<<<<<<<< * stop = is_line or is_return * if plugin_manager is not None: */ - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L137_error) + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 793, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_INTO); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 781, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __pyx_L137_error) + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_INTO); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 793, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 793, __pyx_L139_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 781, __pyx_L137_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 793, __pyx_L139_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":782 + /* "_pydevd_bundle/pydevd_cython.pyx":794 * * elif step_cmd == CMD_STEP_INTO: * stop = is_line or is_return # <<<<<<<<<<<<<< @@ -16951,14 +17265,14 @@ if (!__pyx_t_9) { } else { __pyx_t_12 = __pyx_t_9; - goto __pyx_L147_bool_binop_done; + goto __pyx_L149_bool_binop_done; } __pyx_t_9 = (__pyx_v_is_return != 0); __pyx_t_12 = __pyx_t_9; - __pyx_L147_bool_binop_done:; + __pyx_L149_bool_binop_done:; __pyx_v_stop = __pyx_t_12; - /* "_pydevd_bundle/pydevd_cython.pyx":783 + /* "_pydevd_bundle/pydevd_cython.pyx":795 * elif step_cmd == CMD_STEP_INTO: * stop = is_line or is_return * if plugin_manager is not None: # <<<<<<<<<<<<<< @@ -16969,90 +17283,90 @@ __pyx_t_9 = (__pyx_t_12 != 0); if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":784 + /* "_pydevd_bundle/pydevd_cython.pyx":796 * stop = is_line or is_return * if plugin_manager is not None: * result = plugin_manager.cmd_step_into(main_debugger, frame, event, self._args, stop_info, stop) # <<<<<<<<<<<<<< * if result: * stop, plugin_stop = result */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_cmd_step_into); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 784, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_stop); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 784, __pyx_L137_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_cmd_step_into); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 796, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_stop); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 796, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = NULL; + __pyx_t_6 = NULL; __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_4); + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); + __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[7] = {__pyx_t_6, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_t_7}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[7] = {__pyx_t_6, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_t_7}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_3 = PyTuple_New(6+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 784, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL; + __pyx_t_2 = PyTuple_New(6+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 796, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + if (__pyx_t_6) { + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_main_debugger); __Pyx_GIVEREF(__pyx_v_main_debugger); - PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_5, __pyx_v_main_debugger); + PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_5, __pyx_v_main_debugger); __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); - PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_5, __pyx_v_frame); + PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_5, __pyx_v_frame); __Pyx_INCREF(__pyx_v_event); __Pyx_GIVEREF(__pyx_v_event); - PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_5, __pyx_v_event); + PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_5, __pyx_v_event); __Pyx_INCREF(__pyx_v_self->_args); __Pyx_GIVEREF(__pyx_v_self->_args); - PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_5, __pyx_v_self->_args); + PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_5, __pyx_v_self->_args); __Pyx_INCREF(__pyx_v_stop_info); __Pyx_GIVEREF(__pyx_v_stop_info); - PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_5, __pyx_v_stop_info); + PyTuple_SET_ITEM(__pyx_t_2, 4+__pyx_t_5, __pyx_v_stop_info); __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_5, __pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_2, 5+__pyx_t_5, __pyx_t_7); __pyx_t_7 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L137_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_result, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":785 + /* "_pydevd_bundle/pydevd_cython.pyx":797 * if plugin_manager is not None: * result = plugin_manager.cmd_step_into(main_debugger, frame, event, self._args, stop_info, stop) * if result: # <<<<<<<<<<<<<< * stop, plugin_stop = result * */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 785, __pyx_L137_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 797, __pyx_L139_error) if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":786 + /* "_pydevd_bundle/pydevd_cython.pyx":798 * result = plugin_manager.cmd_step_into(main_debugger, frame, event, self._args, stop_info, stop) * if result: * stop, plugin_stop = result # <<<<<<<<<<<<<< @@ -17061,59 +17375,55 @@ */ if ((likely(PyTuple_CheckExact(__pyx_v_result))) || (PyList_CheckExact(__pyx_v_result))) { PyObject* sequence = __pyx_v_result; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 786, __pyx_L137_error) + __PYX_ERR(0, 798, __pyx_L139_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); - __pyx_t_6 = PyList_GET_ITEM(sequence, 1); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_4); #else - __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __pyx_L137_error) + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 798, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 786, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 798, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); #endif } else { Py_ssize_t index = -1; - __pyx_t_3 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 786, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; - index = 0; __pyx_t_1 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L151_unpacking_failed; + __pyx_t_2 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 798, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_11 = Py_TYPE(__pyx_t_2)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_11(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L153_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); - index = 1; __pyx_t_6 = __pyx_t_11(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L151_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_3), 2) < 0) __PYX_ERR(0, 786, __pyx_L137_error) + index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L153_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_2), 2) < 0) __PYX_ERR(0, 798, __pyx_L139_error) __pyx_t_11 = NULL; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L152_unpacking_done; - __pyx_L151_unpacking_failed:; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L154_unpacking_done; + __pyx_L153_unpacking_failed:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 786, __pyx_L137_error) - __pyx_L152_unpacking_done:; + __PYX_ERR(0, 798, __pyx_L139_error) + __pyx_L154_unpacking_done:; } - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 786, __pyx_L137_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 798, __pyx_L139_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_stop = __pyx_t_9; - __Pyx_DECREF_SET(__pyx_v_plugin_stop, __pyx_t_6); - __pyx_t_6 = 0; + __Pyx_DECREF_SET(__pyx_v_plugin_stop, __pyx_t_4); + __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":785 + /* "_pydevd_bundle/pydevd_cython.pyx":797 * if plugin_manager is not None: * result = plugin_manager.cmd_step_into(main_debugger, frame, event, self._args, stop_info, stop) * if result: # <<<<<<<<<<<<<< @@ -17122,7 +17432,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":783 + /* "_pydevd_bundle/pydevd_cython.pyx":795 * elif step_cmd == CMD_STEP_INTO: * stop = is_line or is_return * if plugin_manager is not None: # <<<<<<<<<<<<<< @@ -17131,100 +17441,100 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":781 + /* "_pydevd_bundle/pydevd_cython.pyx":793 * stop = False * * elif step_cmd == CMD_STEP_INTO: # <<<<<<<<<<<<<< * stop = is_line or is_return * if plugin_manager is not None: */ - goto __pyx_L146; + goto __pyx_L148; } - /* "_pydevd_bundle/pydevd_cython.pyx":788 + /* "_pydevd_bundle/pydevd_cython.pyx":800 * stop, plugin_stop = result * * elif step_cmd == CMD_STEP_INTO_MY_CODE: # <<<<<<<<<<<<<< * if not main_debugger.not_in_scope(frame.f_code.co_filename): * stop = is_line */ - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 788, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_INTO_MY_CODE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 788, __pyx_L137_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 800, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_INTO_MY_CODE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 800, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyObject_RichCompare(__pyx_t_6, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 788, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 800, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 788, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 800, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_9) { - /* "_pydevd_bundle/pydevd_cython.pyx":789 + /* "_pydevd_bundle/pydevd_cython.pyx":801 * * elif step_cmd == CMD_STEP_INTO_MY_CODE: * if not main_debugger.not_in_scope(frame.f_code.co_filename): # <<<<<<<<<<<<<< * stop = is_line * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_not_in_scope); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 789, __pyx_L137_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_not_in_scope); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 789, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 789, __pyx_L137_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 801, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 801, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = NULL; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_6)) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } - if (!__pyx_t_6) { - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 789, __pyx_L137_error) + if (!__pyx_t_4) { + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L139_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_7}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 789, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_7}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 789, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 789, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL; + __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_7); __pyx_t_7 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 789, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 789, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 801, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = ((!__pyx_t_9) != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":790 + /* "_pydevd_bundle/pydevd_cython.pyx":802 * elif step_cmd == CMD_STEP_INTO_MY_CODE: * if not main_debugger.not_in_scope(frame.f_code.co_filename): * stop = is_line # <<<<<<<<<<<<<< @@ -17233,7 +17543,7 @@ */ __pyx_v_stop = __pyx_v_is_line; - /* "_pydevd_bundle/pydevd_cython.pyx":789 + /* "_pydevd_bundle/pydevd_cython.pyx":801 * * elif step_cmd == CMD_STEP_INTO_MY_CODE: * if not main_debugger.not_in_scope(frame.f_code.co_filename): # <<<<<<<<<<<<<< @@ -17242,35 +17552,35 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":788 + /* "_pydevd_bundle/pydevd_cython.pyx":800 * stop, plugin_stop = result * * elif step_cmd == CMD_STEP_INTO_MY_CODE: # <<<<<<<<<<<<<< * if not main_debugger.not_in_scope(frame.f_code.co_filename): * stop = is_line */ - goto __pyx_L146; + goto __pyx_L148; } - /* "_pydevd_bundle/pydevd_cython.pyx":792 + /* "_pydevd_bundle/pydevd_cython.pyx":804 * stop = is_line * * elif step_cmd == CMD_STEP_OVER: # <<<<<<<<<<<<<< * stop = stop_frame is frame and (is_line or is_return) * */ - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 792, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 792, __pyx_L137_error) + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 804, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 792, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 804, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 792, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 804, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":793 + /* "_pydevd_bundle/pydevd_cython.pyx":805 * * elif step_cmd == CMD_STEP_OVER: * stop = stop_frame is frame and (is_line or is_return) # <<<<<<<<<<<<<< @@ -17282,42 +17592,42 @@ if (__pyx_t_10) { } else { __pyx_t_12 = __pyx_t_10; - goto __pyx_L154_bool_binop_done; + goto __pyx_L156_bool_binop_done; } __pyx_t_10 = (__pyx_v_is_line != 0); if (!__pyx_t_10) { } else { __pyx_t_12 = __pyx_t_10; - goto __pyx_L154_bool_binop_done; + goto __pyx_L156_bool_binop_done; } __pyx_t_10 = (__pyx_v_is_return != 0); __pyx_t_12 = __pyx_t_10; - __pyx_L154_bool_binop_done:; + __pyx_L156_bool_binop_done:; __pyx_v_stop = __pyx_t_12; - /* "_pydevd_bundle/pydevd_cython.pyx":795 + /* "_pydevd_bundle/pydevd_cython.pyx":807 * stop = stop_frame is frame and (is_line or is_return) * * if frame.f_code.co_flags & CO_GENERATOR: # <<<<<<<<<<<<<< * if is_return: * stop = False */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 795, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 795, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 807, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 807, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_CO_GENERATOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 795, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyNumber_And(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 795, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_CO_GENERATOR); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 807, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = PyNumber_And(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 807, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 795, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 807, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":796 + /* "_pydevd_bundle/pydevd_cython.pyx":808 * * if frame.f_code.co_flags & CO_GENERATOR: * if is_return: # <<<<<<<<<<<<<< @@ -17327,7 +17637,7 @@ __pyx_t_12 = (__pyx_v_is_return != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":797 + /* "_pydevd_bundle/pydevd_cython.pyx":809 * if frame.f_code.co_flags & CO_GENERATOR: * if is_return: * stop = False # <<<<<<<<<<<<<< @@ -17336,7 +17646,7 @@ */ __pyx_v_stop = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":796 + /* "_pydevd_bundle/pydevd_cython.pyx":808 * * if frame.f_code.co_flags & CO_GENERATOR: * if is_return: # <<<<<<<<<<<<<< @@ -17345,7 +17655,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":795 + /* "_pydevd_bundle/pydevd_cython.pyx":807 * stop = stop_frame is frame and (is_line or is_return) * * if frame.f_code.co_flags & CO_GENERATOR: # <<<<<<<<<<<<<< @@ -17354,7 +17664,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":799 + /* "_pydevd_bundle/pydevd_cython.pyx":811 * stop = False * * if plugin_manager is not None: # <<<<<<<<<<<<<< @@ -17365,90 +17675,90 @@ __pyx_t_10 = (__pyx_t_12 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":800 + /* "_pydevd_bundle/pydevd_cython.pyx":812 * * if plugin_manager is not None: * result = plugin_manager.cmd_step_over(main_debugger, frame, event, self._args, stop_info, stop) # <<<<<<<<<<<<<< * if result: * stop, plugin_stop = result */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_cmd_step_over); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 800, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_stop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 800, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_cmd_step_over); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 812, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_stop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 812, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); + __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_4)) { + if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[7] = {__pyx_t_7, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_t_1}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 800, __pyx_L137_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 812, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[7] = {__pyx_t_7, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_t_1}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 800, __pyx_L137_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 6+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 812, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(6+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 800, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = PyTuple_New(6+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 812, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_7) { - __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_main_debugger); __Pyx_GIVEREF(__pyx_v_main_debugger); - PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_main_debugger); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_v_main_debugger); __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); - PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_frame); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_v_frame); __Pyx_INCREF(__pyx_v_event); __Pyx_GIVEREF(__pyx_v_event); - PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_event); + PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v_event); __Pyx_INCREF(__pyx_v_self->_args); __Pyx_GIVEREF(__pyx_v_self->_args); - PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, __pyx_v_self->_args); + PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_5, __pyx_v_self->_args); __Pyx_INCREF(__pyx_v_stop_info); __Pyx_GIVEREF(__pyx_v_stop_info); - PyTuple_SET_ITEM(__pyx_t_6, 4+__pyx_t_5, __pyx_v_stop_info); + PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_5, __pyx_v_stop_info); __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_6, 5+__pyx_t_5, __pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 5+__pyx_t_5, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 800, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 812, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF_SET(__pyx_v_result, __pyx_t_3); - __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_result, __pyx_t_2); + __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":801 + /* "_pydevd_bundle/pydevd_cython.pyx":813 * if plugin_manager is not None: * result = plugin_manager.cmd_step_over(main_debugger, frame, event, self._args, stop_info, stop) * if result: # <<<<<<<<<<<<<< * stop, plugin_stop = result * */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 801, __pyx_L137_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 813, __pyx_L139_error) if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":802 + /* "_pydevd_bundle/pydevd_cython.pyx":814 * result = plugin_manager.cmd_step_over(main_debugger, frame, event, self._args, stop_info, stop) * if result: * stop, plugin_stop = result # <<<<<<<<<<<<<< @@ -17457,59 +17767,55 @@ */ if ((likely(PyTuple_CheckExact(__pyx_v_result))) || (PyList_CheckExact(__pyx_v_result))) { PyObject* sequence = __pyx_v_result; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 802, __pyx_L137_error) + __PYX_ERR(0, 814, __pyx_L139_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); } else { - __pyx_t_3 = PyList_GET_ITEM(sequence, 0); - __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_6 = PyList_GET_ITEM(sequence, 1); } - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); #else - __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 802, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 802, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 814, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 814, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); #endif } else { Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 802, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_11 = Py_TYPE(__pyx_t_6)->tp_iternext; - index = 0; __pyx_t_3 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L161_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L161_unpacking_failed; + __pyx_t_4 = PyObject_GetIter(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 814, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_6), 2) < 0) __PYX_ERR(0, 802, __pyx_L137_error) + __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_11(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L163_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_6 = __pyx_t_11(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L163_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_4), 2) < 0) __PYX_ERR(0, 814, __pyx_L139_error) __pyx_t_11 = NULL; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L162_unpacking_done; - __pyx_L161_unpacking_failed:; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L164_unpacking_done; + __pyx_L163_unpacking_failed:; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 802, __pyx_L137_error) - __pyx_L162_unpacking_done:; + __PYX_ERR(0, 814, __pyx_L139_error) + __pyx_L164_unpacking_done:; } - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 802, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 814, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_stop = __pyx_t_10; - __Pyx_DECREF_SET(__pyx_v_plugin_stop, __pyx_t_4); - __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_plugin_stop, __pyx_t_6); + __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":801 + /* "_pydevd_bundle/pydevd_cython.pyx":813 * if plugin_manager is not None: * result = plugin_manager.cmd_step_over(main_debugger, frame, event, self._args, stop_info, stop) * if result: # <<<<<<<<<<<<<< @@ -17518,7 +17824,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":799 + /* "_pydevd_bundle/pydevd_cython.pyx":811 * stop = False * * if plugin_manager is not None: # <<<<<<<<<<<<<< @@ -17527,35 +17833,35 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":792 + /* "_pydevd_bundle/pydevd_cython.pyx":804 * stop = is_line * * elif step_cmd == CMD_STEP_OVER: # <<<<<<<<<<<<<< * stop = stop_frame is frame and (is_line or is_return) * */ - goto __pyx_L146; + goto __pyx_L148; } - /* "_pydevd_bundle/pydevd_cython.pyx":804 + /* "_pydevd_bundle/pydevd_cython.pyx":816 * stop, plugin_stop = result * * elif step_cmd == CMD_SMART_STEP_INTO: # <<<<<<<<<<<<<< * stop = False * if info.pydev_smart_step_stop is frame: */ - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 804, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_SMART_STEP_INTO); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 804, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 804, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 804, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_SMART_STEP_INTO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L139_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 816, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":805 + /* "_pydevd_bundle/pydevd_cython.pyx":817 * * elif step_cmd == CMD_SMART_STEP_INTO: * stop = False # <<<<<<<<<<<<<< @@ -17564,7 +17870,7 @@ */ __pyx_v_stop = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":806 + /* "_pydevd_bundle/pydevd_cython.pyx":818 * elif step_cmd == CMD_SMART_STEP_INTO: * stop = False * if info.pydev_smart_step_stop is frame: # <<<<<<<<<<<<<< @@ -17575,7 +17881,7 @@ __pyx_t_12 = (__pyx_t_10 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":807 + /* "_pydevd_bundle/pydevd_cython.pyx":819 * stop = False * if info.pydev_smart_step_stop is frame: * info.pydev_func_name = '.invalid.' # Must match the type in cython # <<<<<<<<<<<<<< @@ -17588,7 +17894,7 @@ __Pyx_DECREF(__pyx_v_info->pydev_func_name); __pyx_v_info->pydev_func_name = __pyx_kp_s_invalid; - /* "_pydevd_bundle/pydevd_cython.pyx":808 + /* "_pydevd_bundle/pydevd_cython.pyx":820 * if info.pydev_smart_step_stop is frame: * info.pydev_func_name = '.invalid.' # Must match the type in cython * info.pydev_smart_step_stop = None # <<<<<<<<<<<<<< @@ -17601,7 +17907,7 @@ __Pyx_DECREF(__pyx_v_info->pydev_smart_step_stop); __pyx_v_info->pydev_smart_step_stop = Py_None; - /* "_pydevd_bundle/pydevd_cython.pyx":806 + /* "_pydevd_bundle/pydevd_cython.pyx":818 * elif step_cmd == CMD_SMART_STEP_INTO: * stop = False * if info.pydev_smart_step_stop is frame: # <<<<<<<<<<<<<< @@ -17610,7 +17916,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":810 + /* "_pydevd_bundle/pydevd_cython.pyx":822 * info.pydev_smart_step_stop = None * * if is_line or is_exception_event: # <<<<<<<<<<<<<< @@ -17621,30 +17927,30 @@ if (!__pyx_t_10) { } else { __pyx_t_12 = __pyx_t_10; - goto __pyx_L165_bool_binop_done; + goto __pyx_L167_bool_binop_done; } __pyx_t_10 = (__pyx_v_is_exception_event != 0); __pyx_t_12 = __pyx_t_10; - __pyx_L165_bool_binop_done:; + __pyx_L167_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":811 + /* "_pydevd_bundle/pydevd_cython.pyx":823 * * if is_line or is_exception_event: * curr_func_name = frame.f_code.co_name # <<<<<<<<<<<<<< * * #global context is set with an empty name */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 811, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 811, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 811, __pyx_L137_error) - __Pyx_XDECREF_SET(__pyx_v_curr_func_name, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 823, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 823, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 823, __pyx_L139_error) + __Pyx_XDECREF_SET(__pyx_v_curr_func_name, ((PyObject*)__pyx_t_2)); + __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":814 + /* "_pydevd_bundle/pydevd_cython.pyx":826 * * #global context is set with an empty name * if curr_func_name in ('?', '') or curr_func_name is None: # <<<<<<<<<<<<<< @@ -17653,31 +17959,31 @@ */ __Pyx_INCREF(__pyx_v_curr_func_name); __pyx_t_13 = __pyx_v_curr_func_name; - __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_13, __pyx_kp_s__7, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 814, __pyx_L137_error) + __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_13, __pyx_kp_s__7, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 826, __pyx_L139_error) __pyx_t_19 = (__pyx_t_9 != 0); if (!__pyx_t_19) { } else { __pyx_t_10 = __pyx_t_19; - goto __pyx_L170_bool_binop_done; + goto __pyx_L172_bool_binop_done; } - __pyx_t_19 = (__Pyx_PyString_Equals(__pyx_t_13, __pyx_kp_s_module, Py_EQ)); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 814, __pyx_L137_error) + __pyx_t_19 = (__Pyx_PyString_Equals(__pyx_t_13, __pyx_kp_s_module, Py_EQ)); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 826, __pyx_L139_error) __pyx_t_9 = (__pyx_t_19 != 0); __pyx_t_10 = __pyx_t_9; - __pyx_L170_bool_binop_done:; + __pyx_L172_bool_binop_done:; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_9 = (__pyx_t_10 != 0); if (!__pyx_t_9) { } else { __pyx_t_12 = __pyx_t_9; - goto __pyx_L168_bool_binop_done; + goto __pyx_L170_bool_binop_done; } __pyx_t_9 = (__pyx_v_curr_func_name == ((PyObject*)Py_None)); __pyx_t_10 = (__pyx_t_9 != 0); __pyx_t_12 = __pyx_t_10; - __pyx_L168_bool_binop_done:; + __pyx_L170_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":815 + /* "_pydevd_bundle/pydevd_cython.pyx":827 * #global context is set with an empty name * if curr_func_name in ('?', '') or curr_func_name is None: * curr_func_name = '' # <<<<<<<<<<<<<< @@ -17687,7 +17993,7 @@ __Pyx_INCREF(__pyx_kp_s_); __Pyx_DECREF_SET(__pyx_v_curr_func_name, __pyx_kp_s_); - /* "_pydevd_bundle/pydevd_cython.pyx":814 + /* "_pydevd_bundle/pydevd_cython.pyx":826 * * #global context is set with an empty name * if curr_func_name in ('?', '') or curr_func_name is None: # <<<<<<<<<<<<<< @@ -17696,18 +18002,18 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":817 + /* "_pydevd_bundle/pydevd_cython.pyx":829 * curr_func_name = '' * * if curr_func_name == info.pydev_func_name: # <<<<<<<<<<<<<< * stop = True * */ - __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_curr_func_name, __pyx_v_info->pydev_func_name, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 817, __pyx_L137_error) + __pyx_t_12 = (__Pyx_PyString_Equals(__pyx_v_curr_func_name, __pyx_v_info->pydev_func_name, Py_EQ)); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 829, __pyx_L139_error) __pyx_t_10 = (__pyx_t_12 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":818 + /* "_pydevd_bundle/pydevd_cython.pyx":830 * * if curr_func_name == info.pydev_func_name: * stop = True # <<<<<<<<<<<<<< @@ -17716,7 +18022,7 @@ */ __pyx_v_stop = 1; - /* "_pydevd_bundle/pydevd_cython.pyx":817 + /* "_pydevd_bundle/pydevd_cython.pyx":829 * curr_func_name = '' * * if curr_func_name == info.pydev_func_name: # <<<<<<<<<<<<<< @@ -17725,7 +18031,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":810 + /* "_pydevd_bundle/pydevd_cython.pyx":822 * info.pydev_smart_step_stop = None * * if is_line or is_exception_event: # <<<<<<<<<<<<<< @@ -17734,35 +18040,35 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":804 + /* "_pydevd_bundle/pydevd_cython.pyx":816 * stop, plugin_stop = result * * elif step_cmd == CMD_SMART_STEP_INTO: # <<<<<<<<<<<<<< * stop = False * if info.pydev_smart_step_stop is frame: */ - goto __pyx_L146; + goto __pyx_L148; } - /* "_pydevd_bundle/pydevd_cython.pyx":820 + /* "_pydevd_bundle/pydevd_cython.pyx":832 * stop = True * * elif step_cmd == CMD_STEP_RETURN: # <<<<<<<<<<<<<< * stop = is_return and stop_frame is frame * */ - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 820, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_RETURN); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 820, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 820, __pyx_L137_error) + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_STEP_RETURN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 832, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 832, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 832, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":821 + /* "_pydevd_bundle/pydevd_cython.pyx":833 * * elif step_cmd == CMD_STEP_RETURN: * stop = is_return and stop_frame is frame # <<<<<<<<<<<<<< @@ -17773,59 +18079,59 @@ if (__pyx_t_12) { } else { __pyx_t_10 = __pyx_t_12; - goto __pyx_L173_bool_binop_done; + goto __pyx_L175_bool_binop_done; } __pyx_t_12 = (__pyx_v_stop_frame == __pyx_v_frame); __pyx_t_9 = (__pyx_t_12 != 0); __pyx_t_10 = __pyx_t_9; - __pyx_L173_bool_binop_done:; + __pyx_L175_bool_binop_done:; __pyx_v_stop = __pyx_t_10; - /* "_pydevd_bundle/pydevd_cython.pyx":820 + /* "_pydevd_bundle/pydevd_cython.pyx":832 * stop = True * * elif step_cmd == CMD_STEP_RETURN: # <<<<<<<<<<<<<< * stop = is_return and stop_frame is frame * */ - goto __pyx_L146; + goto __pyx_L148; } - /* "_pydevd_bundle/pydevd_cython.pyx":823 + /* "_pydevd_bundle/pydevd_cython.pyx":835 * stop = is_return and stop_frame is frame * * elif step_cmd == CMD_RUN_TO_LINE or step_cmd == CMD_SET_NEXT_STATEMENT: # <<<<<<<<<<<<<< * try: * stop, _, response_msg = main_debugger.set_next_statement(frame, event, info.pydev_func_name, info.pydev_next_line) */ - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 823, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_RUN_TO_LINE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 823, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 835, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_RUN_TO_LINE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 835, __pyx_L139_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 823, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 835, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!__pyx_t_9) { } else { __pyx_t_10 = __pyx_t_9; - goto __pyx_L175_bool_binop_done; + goto __pyx_L177_bool_binop_done; } - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_SET_NEXT_STATEMENT); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 823, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 823, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 823, __pyx_L137_error) + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 835, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_CMD_SET_NEXT_STATEMENT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 835, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 835, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_10 = __pyx_t_9; - __pyx_L175_bool_binop_done:; + __pyx_L177_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":824 + /* "_pydevd_bundle/pydevd_cython.pyx":836 * * elif step_cmd == CMD_RUN_TO_LINE or step_cmd == CMD_SET_NEXT_STATEMENT: * try: # <<<<<<<<<<<<<< @@ -17841,49 +18147,49 @@ __Pyx_XGOTREF(__pyx_t_22); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":825 + /* "_pydevd_bundle/pydevd_cython.pyx":837 * elif step_cmd == CMD_RUN_TO_LINE or step_cmd == CMD_SET_NEXT_STATEMENT: * try: * stop, _, response_msg = main_debugger.set_next_statement(frame, event, info.pydev_func_name, info.pydev_next_line) # <<<<<<<<<<<<<< * except ValueError: * pass */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_set_next_statement); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 825, __pyx_L177_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_next_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 825, __pyx_L177_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_set_next_statement); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 837, __pyx_L179_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_info->pydev_next_line); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 837, __pyx_L179_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); + __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_frame, __pyx_v_event, __pyx_v_info->pydev_func_name, __pyx_t_3}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 825, __pyx_L177_error) + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_frame, __pyx_v_event, __pyx_v_info->pydev_func_name, __pyx_t_2}; + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 837, __pyx_L179_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { - PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_frame, __pyx_v_event, __pyx_v_info->pydev_func_name, __pyx_t_3}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 825, __pyx_L177_error) + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_frame, __pyx_v_event, __pyx_v_info->pydev_func_name, __pyx_t_2}; + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 837, __pyx_L179_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { - __pyx_t_7 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 825, __pyx_L177_error) + __pyx_t_7 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 837, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -17897,80 +18203,76 @@ __Pyx_INCREF(__pyx_v_info->pydev_func_name); __Pyx_GIVEREF(__pyx_v_info->pydev_func_name); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_5, __pyx_v_info->pydev_func_name); - __Pyx_GIVEREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_5, __pyx_t_3); - __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 825, __pyx_L177_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_5, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 837, __pyx_L179_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { - PyObject* sequence = __pyx_t_4; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 825, __pyx_L177_error) + __PYX_ERR(0, 837, __pyx_L179_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); } else { - __pyx_t_6 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_7 = PyList_GET_ITEM(sequence, 1); - __pyx_t_3 = PyList_GET_ITEM(sequence, 2); + __pyx_t_2 = PyList_GET_ITEM(sequence, 2); } - __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); #else - __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 825, __pyx_L177_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 825, __pyx_L177_error) + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 837, __pyx_L179_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 837, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 825, __pyx_L177_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 837, __pyx_L179_error) + __Pyx_GOTREF(__pyx_t_2); #endif - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { Py_ssize_t index = -1; - __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 825, __pyx_L177_error) + __pyx_t_1 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 837, __pyx_L179_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext; - index = 0; __pyx_t_6 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_6)) goto __pyx_L183_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 1; __pyx_t_7 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_7)) goto __pyx_L183_unpacking_failed; + index = 0; __pyx_t_4 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_4)) goto __pyx_L185_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_7 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_7)) goto __pyx_L185_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); - index = 2; __pyx_t_3 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L183_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_1), 3) < 0) __PYX_ERR(0, 825, __pyx_L177_error) + index = 2; __pyx_t_2 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_2)) goto __pyx_L185_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_1), 3) < 0) __PYX_ERR(0, 837, __pyx_L179_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L184_unpacking_done; - __pyx_L183_unpacking_failed:; + goto __pyx_L186_unpacking_done; + __pyx_L185_unpacking_failed:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 825, __pyx_L177_error) - __pyx_L184_unpacking_done:; + __PYX_ERR(0, 837, __pyx_L179_error) + __pyx_L186_unpacking_done:; } - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 825, __pyx_L177_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 837, __pyx_L179_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_stop = __pyx_t_10; __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_7); __pyx_t_7 = 0; - __pyx_v_response_msg = __pyx_t_3; - __pyx_t_3 = 0; + __pyx_v_response_msg = __pyx_t_2; + __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":824 + /* "_pydevd_bundle/pydevd_cython.pyx":836 * * elif step_cmd == CMD_RUN_TO_LINE or step_cmd == CMD_SET_NEXT_STATEMENT: * try: # <<<<<<<<<<<<<< @@ -17981,18 +18283,18 @@ __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; - goto __pyx_L182_try_end; - __pyx_L177_error:; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L184_try_end; + __pyx_L179_error:; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":826 + /* "_pydevd_bundle/pydevd_cython.pyx":838 * try: * stop, _, response_msg = main_debugger.set_next_statement(frame, event, info.pydev_func_name, info.pydev_next_line) * except ValueError: # <<<<<<<<<<<<<< @@ -18002,12 +18304,12 @@ __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); if (__pyx_t_5) { __Pyx_ErrRestore(0,0,0); - goto __pyx_L178_exception_handled; + goto __pyx_L180_exception_handled; } - goto __pyx_L179_except_error; - __pyx_L179_except_error:; + goto __pyx_L181_except_error; + __pyx_L181_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":824 + /* "_pydevd_bundle/pydevd_cython.pyx":836 * * elif step_cmd == CMD_RUN_TO_LINE or step_cmd == CMD_SET_NEXT_STATEMENT: * try: # <<<<<<<<<<<<<< @@ -18018,26 +18320,26 @@ __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); - goto __pyx_L137_error; - __pyx_L178_exception_handled:; + goto __pyx_L139_error; + __pyx_L180_exception_handled:; __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22); - __pyx_L182_try_end:; + __pyx_L184_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":823 + /* "_pydevd_bundle/pydevd_cython.pyx":835 * stop = is_return and stop_frame is frame * * elif step_cmd == CMD_RUN_TO_LINE or step_cmd == CMD_SET_NEXT_STATEMENT: # <<<<<<<<<<<<<< * try: * stop, _, response_msg = main_debugger.set_next_statement(frame, event, info.pydev_func_name, info.pydev_next_line) */ - goto __pyx_L146; + goto __pyx_L148; } - /* "_pydevd_bundle/pydevd_cython.pyx":829 + /* "_pydevd_bundle/pydevd_cython.pyx":841 * pass * else: * stop = False # <<<<<<<<<<<<<< @@ -18047,9 +18349,9 @@ /*else*/ { __pyx_v_stop = 0; } - __pyx_L146:; + __pyx_L148:; - /* "_pydevd_bundle/pydevd_cython.pyx":831 + /* "_pydevd_bundle/pydevd_cython.pyx":843 * stop = False * * if stop and step_cmd != -1 and is_return and IS_PY3K and hasattr(frame, "f_back"): # <<<<<<<<<<<<<< @@ -18060,51 +18362,51 @@ if (__pyx_t_9) { } else { __pyx_t_10 = __pyx_t_9; - goto __pyx_L186_bool_binop_done; + goto __pyx_L188_bool_binop_done; } __pyx_t_9 = ((__pyx_v_step_cmd != -1L) != 0); if (__pyx_t_9) { } else { __pyx_t_10 = __pyx_t_9; - goto __pyx_L186_bool_binop_done; + goto __pyx_L188_bool_binop_done; } __pyx_t_9 = (__pyx_v_is_return != 0); if (__pyx_t_9) { } else { __pyx_t_10 = __pyx_t_9; - goto __pyx_L186_bool_binop_done; + goto __pyx_L188_bool_binop_done; } - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_IS_PY3K); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 831, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_IS_PY3K); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 843, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_9) { } else { __pyx_t_10 = __pyx_t_9; - goto __pyx_L186_bool_binop_done; + goto __pyx_L188_bool_binop_done; } - __pyx_t_9 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 831, __pyx_L137_error) + __pyx_t_9 = __Pyx_HasAttr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 843, __pyx_L139_error) __pyx_t_12 = (__pyx_t_9 != 0); __pyx_t_10 = __pyx_t_12; - __pyx_L186_bool_binop_done:; + __pyx_L188_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":832 + /* "_pydevd_bundle/pydevd_cython.pyx":844 * * if stop and step_cmd != -1 and is_return and IS_PY3K and hasattr(frame, "f_back"): * f_code = getattr(frame.f_back, 'f_code', None) # <<<<<<<<<<<<<< * if f_code is not None: * back_filename = os.path.basename(f_code.co_filename) */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 832, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_GetAttr3(__pyx_t_4, __pyx_n_s_f_code, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 832, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_f_code = __pyx_t_3; - __pyx_t_3 = 0; + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 844, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = __Pyx_GetAttr3(__pyx_t_6, __pyx_n_s_f_code, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 844, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_f_code = __pyx_t_2; + __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":833 + /* "_pydevd_bundle/pydevd_cython.pyx":845 * if stop and step_cmd != -1 and is_return and IS_PY3K and hasattr(frame, "f_back"): * f_code = getattr(frame.f_back, 'f_code', None) * if f_code is not None: # <<<<<<<<<<<<<< @@ -18115,143 +18417,143 @@ __pyx_t_12 = (__pyx_t_10 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":834 + /* "_pydevd_bundle/pydevd_cython.pyx":846 * f_code = getattr(frame.f_back, 'f_code', None) * if f_code is not None: * back_filename = os.path.basename(f_code.co_filename) # <<<<<<<<<<<<<< * file_type = get_file_type(back_filename) * if file_type == PYDEV_FILE: */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 834, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_path); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 834, __pyx_L137_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 846, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_path); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 846, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_basename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 834, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_basename); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 846, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_code, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 834, __pyx_L137_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_f_code, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 846, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_6); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); + __Pyx_DECREF_SET(__pyx_t_6, function); } } - if (!__pyx_t_6) { - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L137_error) + if (!__pyx_t_4) { + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 846, __pyx_L139_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_4)) { - PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_7}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_3); + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 846, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { - PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_7}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 846, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 834, __pyx_L137_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 846, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_7); __pyx_t_7 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 846, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF_SET(__pyx_v_back_filename, __pyx_t_3); - __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_back_filename, __pyx_t_2); + __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":835 + /* "_pydevd_bundle/pydevd_cython.pyx":847 * if f_code is not None: * back_filename = os.path.basename(f_code.co_filename) * file_type = get_file_type(back_filename) # <<<<<<<<<<<<<< * if file_type == PYDEV_FILE: * stop = False */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_file_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_file_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 847, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); + __Pyx_DECREF_SET(__pyx_t_6, function); } } if (!__pyx_t_1) { - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_back_filename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 835, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_back_filename); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_4)) { + if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_back_filename}; - __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 835, __pyx_L137_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_back_filename}; - __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 835, __pyx_L137_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 835, __pyx_L137_error) + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 847, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_back_filename); __Pyx_GIVEREF(__pyx_v_back_filename); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_back_filename); - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 835, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_file_type = __pyx_t_3; - __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_file_type = __pyx_t_2; + __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":836 + /* "_pydevd_bundle/pydevd_cython.pyx":848 * back_filename = os.path.basename(f_code.co_filename) * file_type = get_file_type(back_filename) * if file_type == PYDEV_FILE: # <<<<<<<<<<<<<< * stop = False * */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_PYDEV_FILE); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 836, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_RichCompare(__pyx_v_file_type, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 836, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 836, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_PYDEV_FILE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 848, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PyObject_RichCompare(__pyx_v_file_type, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 848, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 848, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":837 + /* "_pydevd_bundle/pydevd_cython.pyx":849 * file_type = get_file_type(back_filename) * if file_type == PYDEV_FILE: * stop = False # <<<<<<<<<<<<<< @@ -18260,7 +18562,7 @@ */ __pyx_v_stop = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":836 + /* "_pydevd_bundle/pydevd_cython.pyx":848 * back_filename = os.path.basename(f_code.co_filename) * file_type = get_file_type(back_filename) * if file_type == PYDEV_FILE: # <<<<<<<<<<<<<< @@ -18269,7 +18571,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":833 + /* "_pydevd_bundle/pydevd_cython.pyx":845 * if stop and step_cmd != -1 and is_return and IS_PY3K and hasattr(frame, "f_back"): * f_code = getattr(frame.f_back, 'f_code', None) * if f_code is not None: # <<<<<<<<<<<<<< @@ -18278,7 +18580,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":831 + /* "_pydevd_bundle/pydevd_cython.pyx":843 * stop = False * * if stop and step_cmd != -1 and is_return and IS_PY3K and hasattr(frame, "f_back"): # <<<<<<<<<<<<<< @@ -18287,103 +18589,103 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":839 + /* "_pydevd_bundle/pydevd_cython.pyx":851 * stop = False * * if plugin_stop: # <<<<<<<<<<<<<< * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) * elif stop: */ - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_plugin_stop); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 839, __pyx_L137_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_plugin_stop); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 851, __pyx_L139_error) if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":840 + /* "_pydevd_bundle/pydevd_cython.pyx":852 * * if plugin_stop: * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) # <<<<<<<<<<<<<< * elif stop: * if is_line: */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_stop); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 840, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 840, __pyx_L137_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_plugin_manager, __pyx_n_s_stop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 852, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 852, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = NULL; __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); + __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { + if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_1, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_v_arg, __pyx_t_7}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 852, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[8] = {__pyx_t_1, __pyx_v_main_debugger, __pyx_v_frame, __pyx_v_event, __pyx_v_self->_args, __pyx_v_stop_info, __pyx_v_arg, __pyx_t_7}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 7+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 852, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { - __pyx_t_6 = PyTuple_New(7+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 840, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = PyTuple_New(7+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_1) { - __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; + __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_main_debugger); __Pyx_GIVEREF(__pyx_v_main_debugger); - PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_main_debugger); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_v_main_debugger); __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); - PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_frame); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_v_frame); __Pyx_INCREF(__pyx_v_event); __Pyx_GIVEREF(__pyx_v_event); - PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_event); + PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v_event); __Pyx_INCREF(__pyx_v_self->_args); __Pyx_GIVEREF(__pyx_v_self->_args); - PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, __pyx_v_self->_args); + PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_5, __pyx_v_self->_args); __Pyx_INCREF(__pyx_v_stop_info); __Pyx_GIVEREF(__pyx_v_stop_info); - PyTuple_SET_ITEM(__pyx_t_6, 4+__pyx_t_5, __pyx_v_stop_info); + PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_5, __pyx_v_stop_info); __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); - PyTuple_SET_ITEM(__pyx_t_6, 5+__pyx_t_5, __pyx_v_arg); + PyTuple_SET_ITEM(__pyx_t_4, 5+__pyx_t_5, __pyx_v_arg); __Pyx_GIVEREF(__pyx_t_7); - PyTuple_SET_ITEM(__pyx_t_6, 6+__pyx_t_5, __pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_4, 6+__pyx_t_5, __pyx_t_7); __pyx_t_7 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 852, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_stopped_on_plugin = __pyx_t_4; - __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_stopped_on_plugin = __pyx_t_6; + __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":839 + /* "_pydevd_bundle/pydevd_cython.pyx":851 * stop = False * * if plugin_stop: # <<<<<<<<<<<<<< * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) * elif stop: */ - goto __pyx_L193; + goto __pyx_L195; } - /* "_pydevd_bundle/pydevd_cython.pyx":841 + /* "_pydevd_bundle/pydevd_cython.pyx":853 * if plugin_stop: * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) * elif stop: # <<<<<<<<<<<<<< @@ -18393,7 +18695,7 @@ __pyx_t_12 = (__pyx_v_stop != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":842 + /* "_pydevd_bundle/pydevd_cython.pyx":854 * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) * elif stop: * if is_line: # <<<<<<<<<<<<<< @@ -18403,49 +18705,49 @@ __pyx_t_12 = (__pyx_v_is_line != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":843 + /* "_pydevd_bundle/pydevd_cython.pyx":855 * elif stop: * if is_line: * self.set_suspend(thread, step_cmd) # <<<<<<<<<<<<<< * self.do_wait_suspend(thread, frame, event, arg) * else: #return event */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 843, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 855, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 855, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = NULL; __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); + __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_thread, __pyx_t_6}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 843, __pyx_L137_error) + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_thread, __pyx_t_4}; + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_thread, __pyx_t_6}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 843, __pyx_L137_error) + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_thread, __pyx_t_4}; + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 843, __pyx_L137_error) + __pyx_t_1 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); __pyx_t_7 = NULL; @@ -18453,89 +18755,89 @@ __Pyx_INCREF(__pyx_v_thread); __Pyx_GIVEREF(__pyx_v_thread); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_5, __pyx_v_thread); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_5, __pyx_t_6); - __pyx_t_6 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 843, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_5, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":844 + /* "_pydevd_bundle/pydevd_cython.pyx":856 * if is_line: * self.set_suspend(thread, step_cmd) * self.do_wait_suspend(thread, frame, event, arg) # <<<<<<<<<<<<<< * else: #return event * back = frame.f_back */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 844, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 856, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); + __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { + if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 844, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 856, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_6); } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_thread, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 844, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 856, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_6); } else #endif { - __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 844, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 856, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_1) { - __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; + __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_thread); __Pyx_GIVEREF(__pyx_v_thread); - PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_thread); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_v_thread); __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); - PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_frame); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_v_frame); __Pyx_INCREF(__pyx_v_event); __Pyx_GIVEREF(__pyx_v_event); - PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_event); + PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v_event); __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); - PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, __pyx_v_arg); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 844, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_5, __pyx_v_arg); + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 856, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":842 + /* "_pydevd_bundle/pydevd_cython.pyx":854 * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) * elif stop: * if is_line: # <<<<<<<<<<<<<< * self.set_suspend(thread, step_cmd) * self.do_wait_suspend(thread, frame, event, arg) */ - goto __pyx_L194; + goto __pyx_L196; } - /* "_pydevd_bundle/pydevd_cython.pyx":846 + /* "_pydevd_bundle/pydevd_cython.pyx":858 * self.do_wait_suspend(thread, frame, event, arg) * else: #return event * back = frame.f_back # <<<<<<<<<<<<<< @@ -18543,12 +18845,12 @@ * #When we get to the pydevd run function, the debugging has actually finished for the main thread */ /*else*/ { - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 846, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_back, __pyx_t_4); - __pyx_t_4 = 0; + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_back); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 858, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XDECREF_SET(__pyx_v_back, __pyx_t_6); + __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":847 + /* "_pydevd_bundle/pydevd_cython.pyx":859 * else: #return event * back = frame.f_back * if back is not None: # <<<<<<<<<<<<<< @@ -18559,163 +18861,159 @@ __pyx_t_10 = (__pyx_t_12 != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":851 + /* "_pydevd_bundle/pydevd_cython.pyx":863 * #(note that it can still go on for other threads, but for this one, we just make it finish) * #So, just setting it to None should be OK * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) # <<<<<<<<<<<<<< * if base == DEBUG_START[0] and back.f_code.co_name == DEBUG_START[1]: * back = None */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 851, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_6); + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 863, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); + __Pyx_DECREF_SET(__pyx_t_2, function); } } - if (!__pyx_t_6) { - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_back); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 851, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); + if (!__pyx_t_4) { + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_back); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 863, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); } else { #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_back}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 851, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_4); + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_back}; + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 863, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_6); } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_back}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 851, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[2] = {__pyx_t_4, __pyx_v_back}; + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 863, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_6); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 851, __pyx_L137_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 863, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_INCREF(__pyx_v_back); __Pyx_GIVEREF(__pyx_v_back); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_back); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 851, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 863, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { - PyObject* sequence = __pyx_t_4; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 851, __pyx_L137_error) + __PYX_ERR(0, 863, __pyx_L139_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); } else { - __pyx_t_3 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); - __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + __pyx_t_4 = PyList_GET_ITEM(sequence, 2); } - __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_4); #else - __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 851, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 851, __pyx_L137_error) + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 863, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 863, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 851, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 863, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); #endif - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 851, __pyx_L137_error) + __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 863, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_11 = Py_TYPE(__pyx_t_7)->tp_iternext; - index = 0; __pyx_t_3 = __pyx_t_11(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L196_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 1; __pyx_t_1 = __pyx_t_11(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L196_unpacking_failed; + index = 0; __pyx_t_2 = __pyx_t_11(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L198_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_11(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L198_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); - index = 2; __pyx_t_6 = __pyx_t_11(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L196_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_7), 3) < 0) __PYX_ERR(0, 851, __pyx_L137_error) + index = 2; __pyx_t_4 = __pyx_t_11(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L198_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_7), 3) < 0) __PYX_ERR(0, 863, __pyx_L139_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L197_unpacking_done; - __pyx_L196_unpacking_failed:; + goto __pyx_L199_unpacking_done; + __pyx_L198_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 851, __pyx_L137_error) - __pyx_L197_unpacking_done:; + __PYX_ERR(0, 863, __pyx_L139_error) + __pyx_L199_unpacking_done:; } - __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_3); - __pyx_t_3 = 0; + __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_2); + __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_back_filename, __pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF_SET(__pyx_v_base, __pyx_t_6); - __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_base, __pyx_t_4); + __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":852 + /* "_pydevd_bundle/pydevd_cython.pyx":864 * #So, just setting it to None should be OK * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) * if base == DEBUG_START[0] and back.f_code.co_name == DEBUG_START[1]: # <<<<<<<<<<<<<< * back = None * */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 852, __pyx_L137_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 864, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_RichCompare(__pyx_v_base, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __pyx_L137_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 864, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 852, __pyx_L137_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_v_base, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 864, __pyx_L139_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 864, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_12) { } else { __pyx_t_10 = __pyx_t_12; - goto __pyx_L199_bool_binop_done; + goto __pyx_L201_bool_binop_done; } - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_back, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 852, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_back, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 864, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __pyx_L137_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 864, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L137_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_DEBUG_START); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 864, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_6, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 864, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __pyx_L137_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 852, __pyx_L137_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 864, __pyx_L139_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 864, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_10 = __pyx_t_12; - __pyx_L199_bool_binop_done:; + __pyx_L201_bool_binop_done:; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":853 + /* "_pydevd_bundle/pydevd_cython.pyx":865 * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) * if base == DEBUG_START[0] and back.f_code.co_name == DEBUG_START[1]: * back = None # <<<<<<<<<<<<<< @@ -18725,32 +19023,32 @@ __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_back, Py_None); - /* "_pydevd_bundle/pydevd_cython.pyx":852 + /* "_pydevd_bundle/pydevd_cython.pyx":864 * #So, just setting it to None should be OK * _, back_filename, base = get_abs_path_real_path_and_base_from_frame(back) * if base == DEBUG_START[0] and back.f_code.co_name == DEBUG_START[1]: # <<<<<<<<<<<<<< * back = None * */ - goto __pyx_L198; + goto __pyx_L200; } - /* "_pydevd_bundle/pydevd_cython.pyx":855 + /* "_pydevd_bundle/pydevd_cython.pyx":867 * back = None * * elif base == TRACE_PROPERTY: # <<<<<<<<<<<<<< * # We dont want to trace the return event of pydevd_traceproperty (custom property for debugging) * #if we're in a return, we want it to appear to the user in the previous frame! */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_TRACE_PROPERTY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 855, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyObject_RichCompare(__pyx_v_base, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L137_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 855, __pyx_L137_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_TRACE_PROPERTY); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 867, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyObject_RichCompare(__pyx_v_base, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 867, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 867, __pyx_L139_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":858 + /* "_pydevd_bundle/pydevd_cython.pyx":870 * # We dont want to trace the return event of pydevd_traceproperty (custom property for debugging) * #if we're in a return, we want it to appear to the user in the previous frame! * return None # <<<<<<<<<<<<<< @@ -18758,11 +19056,10 @@ * elif pydevd_dont_trace.should_trace_hook is not None: */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; - goto __pyx_L141_try_return; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L143_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":855 + /* "_pydevd_bundle/pydevd_cython.pyx":867 * back = None * * elif base == TRACE_PROPERTY: # <<<<<<<<<<<<<< @@ -18771,110 +19068,110 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":860 + /* "_pydevd_bundle/pydevd_cython.pyx":872 * return None * * elif pydevd_dont_trace.should_trace_hook is not None: # <<<<<<<<<<<<<< * if not pydevd_dont_trace.should_trace_hook(back, back_filename): * # In this case, we'll have to skip the previous one because it shouldn't be traced. */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 860, __pyx_L137_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 860, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 872, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = (__pyx_t_4 != Py_None); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_10 = (__pyx_t_6 != Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_12 = (__pyx_t_10 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":861 + /* "_pydevd_bundle/pydevd_cython.pyx":873 * * elif pydevd_dont_trace.should_trace_hook is not None: * if not pydevd_dont_trace.should_trace_hook(back, back_filename): # <<<<<<<<<<<<<< * # In this case, we'll have to skip the previous one because it shouldn't be traced. * # Also, we have to reset the tracing, because if the parent's parent (or some */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 861, __pyx_L137_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 873, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 861, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_should_trace_hook); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 873, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); + __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_6)) { + if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_back, __pyx_v_back_filename}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 861, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 873, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_6); } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_back, __pyx_v_back_filename}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 861, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 873, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_6); } else #endif { - __pyx_t_3 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 861, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 873, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_1) { - __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL; + __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_back); __Pyx_GIVEREF(__pyx_v_back); - PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_5, __pyx_v_back); + PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_5, __pyx_v_back); __Pyx_INCREF(__pyx_v_back_filename); __Pyx_GIVEREF(__pyx_v_back_filename); - PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_5, __pyx_v_back_filename); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 861, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_5, __pyx_v_back_filename); + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 873, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 861, __pyx_L137_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 873, __pyx_L139_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_10 = ((!__pyx_t_12) != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":867 + /* "_pydevd_bundle/pydevd_cython.pyx":879 * # we should anymore (so, a step in/over/return may not stop anywhere if no parent is traced). * # Related test: _debugger_case17a.py * main_debugger.set_trace_for_frame_and_parents(back, overwrite_prev_trace=True) # <<<<<<<<<<<<<< * return None * */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_set_trace_for_frame_and_parents); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 867, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 867, __pyx_L137_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_set_trace_for_frame_and_parents); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 879, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 879, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_back); __Pyx_GIVEREF(__pyx_v_back); - PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_back); - __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 867, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_overwrite_prev_trace, Py_True) < 0) __PYX_ERR(0, 867, __pyx_L137_error) - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 867, __pyx_L137_error) + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_back); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 879, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_overwrite_prev_trace, Py_True) < 0) __PYX_ERR(0, 879, __pyx_L139_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 879, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":868 + /* "_pydevd_bundle/pydevd_cython.pyx":880 * # Related test: _debugger_case17a.py * main_debugger.set_trace_for_frame_and_parents(back, overwrite_prev_trace=True) * return None # <<<<<<<<<<<<<< @@ -18882,11 +19179,10 @@ * if back is not None: */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; - goto __pyx_L141_try_return; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L143_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":861 + /* "_pydevd_bundle/pydevd_cython.pyx":873 * * elif pydevd_dont_trace.should_trace_hook is not None: * if not pydevd_dont_trace.should_trace_hook(back, back_filename): # <<<<<<<<<<<<<< @@ -18895,7 +19191,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":860 + /* "_pydevd_bundle/pydevd_cython.pyx":872 * return None * * elif pydevd_dont_trace.should_trace_hook is not None: # <<<<<<<<<<<<<< @@ -18903,9 +19199,9 @@ * # In this case, we'll have to skip the previous one because it shouldn't be traced. */ } - __pyx_L198:; + __pyx_L200:; - /* "_pydevd_bundle/pydevd_cython.pyx":847 + /* "_pydevd_bundle/pydevd_cython.pyx":859 * else: #return event * back = frame.f_back * if back is not None: # <<<<<<<<<<<<<< @@ -18914,7 +19210,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":870 + /* "_pydevd_bundle/pydevd_cython.pyx":882 * return None * * if back is not None: # <<<<<<<<<<<<<< @@ -18925,179 +19221,198 @@ __pyx_t_12 = (__pyx_t_10 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":872 + /* "_pydevd_bundle/pydevd_cython.pyx":884 * if back is not None: * #if we're in a return, we want it to appear to the user in the previous frame! * self.set_suspend(thread, step_cmd) # <<<<<<<<<<<<<< * self.do_wait_suspend(thread, back, event, arg) * else: */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 872, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 872, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = NULL; + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 884, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_step_cmd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 884, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = NULL; __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); + __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_thread, __pyx_t_6}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_thread, __pyx_t_4}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 884, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { - PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_thread, __pyx_t_6}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L137_error) - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_thread, __pyx_t_4}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 884, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_7 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 872, __pyx_L137_error) + __pyx_t_7 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 884, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_7); - if (__pyx_t_4) { - __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; + if (__pyx_t_6) { + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_thread); __Pyx_GIVEREF(__pyx_v_thread); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_5, __pyx_v_thread); - __Pyx_GIVEREF(__pyx_t_6); - PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_5, __pyx_t_6); - __pyx_t_6 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L137_error) + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_5, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 884, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":873 + /* "_pydevd_bundle/pydevd_cython.pyx":885 * #if we're in a return, we want it to appear to the user in the previous frame! * self.set_suspend(thread, step_cmd) * self.do_wait_suspend(thread, back, event, arg) # <<<<<<<<<<<<<< * else: * #in jython we may not have a back frame */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 873, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_do_wait_suspend); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 885, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = NULL; __pyx_t_5 = 0; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); + __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_3)) { + if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_thread, __pyx_v_back, __pyx_v_event, __pyx_v_arg}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 873, __pyx_L137_error) + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 885, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_thread, __pyx_v_back, __pyx_v_event, __pyx_v_arg}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 873, __pyx_L137_error) + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 885, __pyx_L139_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { - __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 873, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 885, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_7) { - __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_thread); __Pyx_GIVEREF(__pyx_v_thread); - PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_thread); + PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_v_thread); __Pyx_INCREF(__pyx_v_back); __Pyx_GIVEREF(__pyx_v_back); - PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_back); + PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_v_back); __Pyx_INCREF(__pyx_v_event); __Pyx_GIVEREF(__pyx_v_event); - PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_event); + PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_5, __pyx_v_event); __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); - PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, __pyx_v_arg); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 873, __pyx_L137_error) + PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_5, __pyx_v_arg); + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 885, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":870 + /* "_pydevd_bundle/pydevd_cython.pyx":882 * return None * * if back is not None: # <<<<<<<<<<<<<< * #if we're in a return, we want it to appear to the user in the previous frame! * self.set_suspend(thread, step_cmd) */ - goto __pyx_L202; + goto __pyx_L204; } - /* "_pydevd_bundle/pydevd_cython.pyx":876 + /* "_pydevd_bundle/pydevd_cython.pyx":888 * else: * #in jython we may not have a back frame - * info.pydev_step_stop = None # <<<<<<<<<<<<<< - * info.pydev_step_cmd = -1 - * info.pydev_state = STATE_RUN - */ - /*else*/ { - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - __Pyx_GOTREF(__pyx_v_info->pydev_step_stop); - __Pyx_DECREF(__pyx_v_info->pydev_step_stop); - __pyx_v_info->pydev_step_stop = Py_None; - - /* "_pydevd_bundle/pydevd_cython.pyx":877 - * #in jython we may not have a back frame - * info.pydev_step_stop = None - * info.pydev_step_cmd = -1 # <<<<<<<<<<<<<< - * info.pydev_state = STATE_RUN - * - */ - __pyx_v_info->pydev_step_cmd = -1; - - /* "_pydevd_bundle/pydevd_cython.pyx":878 - * info.pydev_step_stop = None - * info.pydev_step_cmd = -1 - * info.pydev_state = STATE_RUN # <<<<<<<<<<<<<< + * self.clear_run_state(info) # <<<<<<<<<<<<<< * * except KeyboardInterrupt: */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_STATE_RUN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 878, __pyx_L137_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 878, __pyx_L137_error) + /*else*/ { + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear_run_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 888, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + if (!__pyx_t_4) { + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_info)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 888, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[2] = {__pyx_t_4, ((PyObject *)__pyx_v_info)}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 888, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[2] = {__pyx_t_4, ((PyObject *)__pyx_v_info)}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 888, __pyx_L139_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + { + __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 888, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; + __Pyx_INCREF(((PyObject *)__pyx_v_info)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_info)); + PyTuple_SET_ITEM(__pyx_t_7, 0+1, ((PyObject *)__pyx_v_info)); + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 888, __pyx_L139_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_info->pydev_state = __pyx_t_5; } - __pyx_L202:; + __pyx_L204:; } - __pyx_L194:; + __pyx_L196:; - /* "_pydevd_bundle/pydevd_cython.pyx":841 + /* "_pydevd_bundle/pydevd_cython.pyx":853 * if plugin_stop: * stopped_on_plugin = plugin_manager.stop(main_debugger, frame, event, self._args, stop_info, arg, step_cmd) * elif stop: # <<<<<<<<<<<<<< @@ -19105,9 +19420,9 @@ * self.set_suspend(thread, step_cmd) */ } - __pyx_L193:; + __pyx_L195:; - /* "_pydevd_bundle/pydevd_cython.pyx":762 + /* "_pydevd_bundle/pydevd_cython.pyx":774 * * #step handling. We stop when we hit the right frame * try: # <<<<<<<<<<<<<< @@ -19118,49 +19433,103 @@ __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; - goto __pyx_L142_try_end; - __pyx_L137_error:; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L144_try_end; + __pyx_L139_error:; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":880 - * info.pydev_state = STATE_RUN + /* "_pydevd_bundle/pydevd_cython.pyx":890 + * self.clear_run_state(info) * * except KeyboardInterrupt: # <<<<<<<<<<<<<< + * self.clear_run_state(info) * raise - * except: */ __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyboardInterrupt); if (__pyx_t_5) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_3, &__pyx_t_6) < 0) __PYX_ERR(0, 880, __pyx_L139_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_7) < 0) __PYX_ERR(0, 890, __pyx_L141_except_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_t_7); - /* "_pydevd_bundle/pydevd_cython.pyx":881 + /* "_pydevd_bundle/pydevd_cython.pyx":891 * * except KeyboardInterrupt: + * self.clear_run_state(info) # <<<<<<<<<<<<<< + * raise + * except: + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear_run_state); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 891, __pyx_L141_except_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + } + } + if (!__pyx_t_8) { + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_info)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 891, __pyx_L141_except_error) + __Pyx_GOTREF(__pyx_t_4); + } else { + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[2] = {__pyx_t_8, ((PyObject *)__pyx_v_info)}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 891, __pyx_L141_except_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_4); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[2] = {__pyx_t_8, ((PyObject *)__pyx_v_info)}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 891, __pyx_L141_except_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_4); + } else + #endif + { + __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 891, __pyx_L141_except_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_8); __pyx_t_8 = NULL; + __Pyx_INCREF(((PyObject *)__pyx_v_info)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_info)); + PyTuple_SET_ITEM(__pyx_t_3, 0+1, ((PyObject *)__pyx_v_info)); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 891, __pyx_L141_except_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "_pydevd_bundle/pydevd_cython.pyx":892 + * except KeyboardInterrupt: + * self.clear_run_state(info) * raise # <<<<<<<<<<<<<< * except: * try: */ __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_3); - __Pyx_XGIVEREF(__pyx_t_6); - __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_3, __pyx_t_6); - __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_6 = 0; - __PYX_ERR(0, 881, __pyx_L139_except_error) + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_2, __pyx_t_7); + __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_7 = 0; + __PYX_ERR(0, 892, __pyx_L141_except_error) } - /* "_pydevd_bundle/pydevd_cython.pyx":882 - * except KeyboardInterrupt: + /* "_pydevd_bundle/pydevd_cython.pyx":893 + * self.clear_run_state(info) * raise * except: # <<<<<<<<<<<<<< * try: @@ -19168,12 +19537,12 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(0, 882, __pyx_L139_except_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(0, 893, __pyx_L141_except_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_1); - /* "_pydevd_bundle/pydevd_cython.pyx":883 + /* "_pydevd_bundle/pydevd_cython.pyx":894 * raise * except: * try: # <<<<<<<<<<<<<< @@ -19189,39 +19558,39 @@ __Pyx_XGOTREF(__pyx_t_20); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":884 + /* "_pydevd_bundle/pydevd_cython.pyx":895 * except: * try: * traceback.print_exc() # <<<<<<<<<<<<<< * info.pydev_step_cmd = -1 * except: */ - __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 884, __pyx_L207_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 884, __pyx_L207_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_4); + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 895, __pyx_L209_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 895, __pyx_L209_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); + __Pyx_DECREF_SET(__pyx_t_3, function); } } - if (__pyx_t_4) { - __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 884, __pyx_L207_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_6) { + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 895, __pyx_L209_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { - __pyx_t_7 = __Pyx_PyObject_CallNoArg(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 884, __pyx_L207_error) + __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 895, __pyx_L209_error) } - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":885 + /* "_pydevd_bundle/pydevd_cython.pyx":896 * try: * traceback.print_exc() * info.pydev_step_cmd = -1 # <<<<<<<<<<<<<< @@ -19230,7 +19599,7 @@ */ __pyx_v_info->pydev_step_cmd = -1; - /* "_pydevd_bundle/pydevd_cython.pyx":883 + /* "_pydevd_bundle/pydevd_cython.pyx":894 * raise * except: * try: # <<<<<<<<<<<<<< @@ -19241,15 +19610,15 @@ __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; - goto __pyx_L214_try_end; - __pyx_L207_error:; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L216_try_end; + __pyx_L209_error:; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":886 + /* "_pydevd_bundle/pydevd_cython.pyx":897 * traceback.print_exc() * info.pydev_step_cmd = -1 * except: # <<<<<<<<<<<<<< @@ -19258,12 +19627,12 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_4) < 0) __PYX_ERR(0, 886, __pyx_L209_except_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_6) < 0) __PYX_ERR(0, 897, __pyx_L211_except_error) __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_6); - /* "_pydevd_bundle/pydevd_cython.pyx":887 + /* "_pydevd_bundle/pydevd_cython.pyx":898 * info.pydev_step_cmd = -1 * except: * return None # <<<<<<<<<<<<<< @@ -19271,19 +19640,18 @@ * #if we are quitting, let's stop the tracing */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L210_except_return; + goto __pyx_L212_except_return; } - __pyx_L209_except_error:; + __pyx_L211_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":883 + /* "_pydevd_bundle/pydevd_cython.pyx":894 * raise * except: * try: # <<<<<<<<<<<<<< @@ -19294,23 +19662,23 @@ __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_21, __pyx_t_20); - goto __pyx_L139_except_error; - __pyx_L210_except_return:; + goto __pyx_L141_except_error; + __pyx_L212_except_return:; __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_21, __pyx_t_20); - goto __pyx_L140_except_return; - __pyx_L214_try_end:; + goto __pyx_L142_except_return; + __pyx_L216_try_end:; } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L138_exception_handled; + goto __pyx_L140_exception_handled; } - __pyx_L139_except_error:; + __pyx_L141_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":762 + /* "_pydevd_bundle/pydevd_cython.pyx":774 * * #step handling. We stop when we hit the right frame * try: # <<<<<<<<<<<<<< @@ -19322,27 +19690,27 @@ __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16); goto __pyx_L4_error; - __pyx_L141_try_return:; + __pyx_L143_try_return:; __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16); goto __pyx_L3_return; - __pyx_L140_except_return:; + __pyx_L142_except_return:; __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16); goto __pyx_L3_return; - __pyx_L138_exception_handled:; + __pyx_L140_exception_handled:; __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16); - __pyx_L142_try_end:; + __pyx_L144_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":890 + /* "_pydevd_bundle/pydevd_cython.pyx":901 * * #if we are quitting, let's stop the tracing * retVal = None # <<<<<<<<<<<<<< @@ -19352,33 +19720,33 @@ __Pyx_INCREF(Py_None); __pyx_v_retVal = Py_None; - /* "_pydevd_bundle/pydevd_cython.pyx":891 + /* "_pydevd_bundle/pydevd_cython.pyx":902 * #if we are quitting, let's stop the tracing * retVal = None * if not main_debugger.quitting: # <<<<<<<<<<<<<< * retVal = self.trace_dispatch * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_quitting); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 891, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_quitting); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 902, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 891, __pyx_L4_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 902, __pyx_L4_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = ((!__pyx_t_12) != 0); if (__pyx_t_10) { - /* "_pydevd_bundle/pydevd_cython.pyx":892 + /* "_pydevd_bundle/pydevd_cython.pyx":903 * retVal = None * if not main_debugger.quitting: * retVal = self.trace_dispatch # <<<<<<<<<<<<<< * * return retVal */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 892, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_trace_dispatch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 903, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_retVal, __pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":891 + /* "_pydevd_bundle/pydevd_cython.pyx":902 * #if we are quitting, let's stop the tracing * retVal = None * if not main_debugger.quitting: # <<<<<<<<<<<<<< @@ -19387,7 +19755,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":894 + /* "_pydevd_bundle/pydevd_cython.pyx":905 * retVal = self.trace_dispatch * * return retVal # <<<<<<<<<<<<<< @@ -19400,7 +19768,7 @@ goto __pyx_L3_return; } - /* "_pydevd_bundle/pydevd_cython.pyx":896 + /* "_pydevd_bundle/pydevd_cython.pyx":907 * return retVal * finally: * info.is_tracing = False # <<<<<<<<<<<<<< @@ -19413,12 +19781,12 @@ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); @@ -19457,7 +19825,7 @@ } } - /* "_pydevd_bundle/pydevd_cython.pyx":515 + /* "_pydevd_bundle/pydevd_cython.pyx":525 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * cpdef trace_dispatch(self, frame, str event, arg): # <<<<<<<<<<<<<< @@ -19515,8 +19883,8 @@ } /* Python wrapper */ -static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_19trace_dispatch(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_19trace_dispatch(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { +static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_21trace_dispatch(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_21trace_dispatch(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_frame = 0; PyObject *__pyx_v_event = 0; PyObject *__pyx_v_arg = 0; @@ -19542,23 +19910,23 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, 1); __PYX_ERR(0, 515, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, 1); __PYX_ERR(0, 525, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, 2); __PYX_ERR(0, 515, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, 2); __PYX_ERR(0, 525, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_dispatch") < 0)) __PYX_ERR(0, 515, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_dispatch") < 0)) __PYX_ERR(0, 525, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -19573,14 +19941,14 @@ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 515, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.PyDBFrame.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), (&PyString_Type), 1, "event", 1))) __PYX_ERR(0, 515, __pyx_L1_error) - __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_18trace_dispatch(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self), __pyx_v_frame, __pyx_v_event, __pyx_v_arg); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_event), (&PyString_Type), 1, "event", 1))) __PYX_ERR(0, 525, __pyx_L1_error) + __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20trace_dispatch(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self), __pyx_v_frame, __pyx_v_event, __pyx_v_arg); /* function exit code */ goto __pyx_L0; @@ -19591,13 +19959,13 @@ return __pyx_r; } -static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_18trace_dispatch(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v_frame, PyObject *__pyx_v_event, PyObject *__pyx_v_arg) { +static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20trace_dispatch(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v_frame, PyObject *__pyx_v_event, PyObject *__pyx_v_arg) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("trace_dispatch", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispatch(__pyx_v_self, __pyx_v_frame, __pyx_v_event, __pyx_v_arg, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 515, __pyx_L1_error) + __pyx_t_1 = __pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispatch(__pyx_v_self, __pyx_v_frame, __pyx_v_event, __pyx_v_arg, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -19621,19 +19989,19 @@ */ /* Python wrapper */ -static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_21__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_21__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_23__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_23__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20__reduce_cython__(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self)); + __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_22__reduce_cython__(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_20__reduce_cython__(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self) { +static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_22__reduce_cython__(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self) { int __pyx_v_use_setstate; PyObject *__pyx_v_state = NULL; PyObject *__pyx_v__dict = NULL; @@ -19858,19 +20226,19 @@ */ /* Python wrapper */ -static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_23__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ -static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_23__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_25__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_25__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_22__setstate_cython__(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_24__setstate_cython__(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_22__setstate_cython__(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_24__setstate_cython__(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -19906,7 +20274,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":937 +/* "_pydevd_bundle/pydevd_cython.pyx":948 * * * def trace_dispatch(py_db, frame, event, arg): # <<<<<<<<<<<<<< @@ -19946,29 +20314,29 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_py_db)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_py_db)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 1); __PYX_ERR(0, 937, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 1); __PYX_ERR(0, 948, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 2); __PYX_ERR(0, 937, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 2); __PYX_ERR(0, 948, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: - if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 3); __PYX_ERR(0, 937, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, 3); __PYX_ERR(0, 948, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_dispatch") < 0)) __PYX_ERR(0, 937, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trace_dispatch") < 0)) __PYX_ERR(0, 948, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -19985,7 +20353,7 @@ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 937, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("trace_dispatch", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 948, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -20017,14 +20385,14 @@ int __pyx_t_11; __Pyx_RefNannySetupContext("trace_dispatch", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":938 + /* "_pydevd_bundle/pydevd_cython.pyx":949 * * def trace_dispatch(py_db, frame, event, arg): * t = threadingCurrentThread() # <<<<<<<<<<<<<< * * if getattr(t, 'pydev_do_not_trace', None): */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_threadingCurrentThread); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 938, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_threadingCurrentThread); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { @@ -20037,30 +20405,30 @@ } } if (__pyx_t_3) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 938, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 949, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { - __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 938, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 949, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_t = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":940 + /* "_pydevd_bundle/pydevd_cython.pyx":951 * t = threadingCurrentThread() * * if getattr(t, 'pydev_do_not_trace', None): # <<<<<<<<<<<<<< * return None * */ - __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_t, __pyx_n_s_pydev_do_not_trace, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 940, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_t, __pyx_n_s_pydev_do_not_trace, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 940, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 951, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { - /* "_pydevd_bundle/pydevd_cython.pyx":941 + /* "_pydevd_bundle/pydevd_cython.pyx":952 * * if getattr(t, 'pydev_do_not_trace', None): * return None # <<<<<<<<<<<<<< @@ -20068,11 +20436,10 @@ * try: */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":940 + /* "_pydevd_bundle/pydevd_cython.pyx":951 * t = threadingCurrentThread() * * if getattr(t, 'pydev_do_not_trace', None): # <<<<<<<<<<<<<< @@ -20081,7 +20448,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":943 + /* "_pydevd_bundle/pydevd_cython.pyx":954 * return None * * try: # <<<<<<<<<<<<<< @@ -20097,19 +20464,19 @@ __Pyx_XGOTREF(__pyx_t_7); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":944 + /* "_pydevd_bundle/pydevd_cython.pyx":955 * * try: * additional_info = t.additional_info # <<<<<<<<<<<<<< * if additional_info is None: * raise AttributeError() */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_n_s_additional_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 944, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_n_s_additional_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 955, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_additional_info = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":945 + /* "_pydevd_bundle/pydevd_cython.pyx":956 * try: * additional_info = t.additional_info * if additional_info is None: # <<<<<<<<<<<<<< @@ -20118,22 +20485,22 @@ */ __pyx_t_4 = (__pyx_v_additional_info == Py_None); __pyx_t_8 = (__pyx_t_4 != 0); - if (__pyx_t_8) { + if (unlikely(__pyx_t_8)) { - /* "_pydevd_bundle/pydevd_cython.pyx":946 + /* "_pydevd_bundle/pydevd_cython.pyx":957 * additional_info = t.additional_info * if additional_info is None: * raise AttributeError() # <<<<<<<<<<<<<< * except: * additional_info = t.additional_info = PyDBAdditionalThreadInfo() */ - __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_AttributeError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 946, __pyx_L4_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_AttributeError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 957, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 946, __pyx_L4_error) + __PYX_ERR(0, 957, __pyx_L4_error) - /* "_pydevd_bundle/pydevd_cython.pyx":945 + /* "_pydevd_bundle/pydevd_cython.pyx":956 * try: * additional_info = t.additional_info * if additional_info is None: # <<<<<<<<<<<<<< @@ -20142,7 +20509,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":943 + /* "_pydevd_bundle/pydevd_cython.pyx":954 * return None * * try: # <<<<<<<<<<<<<< @@ -20159,7 +20526,7 @@ __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":947 + /* "_pydevd_bundle/pydevd_cython.pyx":958 * if additional_info is None: * raise AttributeError() * except: # <<<<<<<<<<<<<< @@ -20168,23 +20535,23 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.trace_dispatch", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(0, 947, __pyx_L6_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(0, 958, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_3); - /* "_pydevd_bundle/pydevd_cython.pyx":948 + /* "_pydevd_bundle/pydevd_cython.pyx":959 * raise AttributeError() * except: * additional_info = t.additional_info = PyDBAdditionalThreadInfo() # <<<<<<<<<<<<<< * * thread_tracer = ThreadTracer((py_db, t, additional_info, global_cache_skips, global_cache_frame_skips)) */ - __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 948, __pyx_L6_except_error) + __pyx_t_9 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 959, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_additional_info, __pyx_t_9); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_t, __pyx_n_s_additional_info, __pyx_t_9) < 0) __PYX_ERR(0, 948, __pyx_L6_except_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_t, __pyx_n_s_additional_info, __pyx_t_9) < 0) __PYX_ERR(0, 959, __pyx_L6_except_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -20193,7 +20560,7 @@ } __pyx_L6_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":943 + /* "_pydevd_bundle/pydevd_cython.pyx":954 * return None * * try: # <<<<<<<<<<<<<< @@ -20213,18 +20580,18 @@ __pyx_L9_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":950 + /* "_pydevd_bundle/pydevd_cython.pyx":961 * additional_info = t.additional_info = PyDBAdditionalThreadInfo() * * thread_tracer = ThreadTracer((py_db, t, additional_info, global_cache_skips, global_cache_frame_skips)) # <<<<<<<<<<<<<< * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * t._tracer = thread_tracer # Hack for cython to keep it alive while the thread is alive (just the method in the SetTrace is not enough). */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_global_cache_skips); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 950, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_global_cache_skips); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_global_cache_frame_skips); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 950, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_global_cache_frame_skips); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 950, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_py_db); __Pyx_GIVEREF(__pyx_v_py_db); @@ -20241,86 +20608,81 @@ PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_2); __pyx_t_3 = 0; __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 950, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_1); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 950, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_thread_tracer = ((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_ThreadTracer *)__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_thread_tracer = ((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_ThreadTracer *)__pyx_t_2); + __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":952 + /* "_pydevd_bundle/pydevd_cython.pyx":963 * thread_tracer = ThreadTracer((py_db, t, additional_info, global_cache_skips, global_cache_frame_skips)) * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * t._tracer = thread_tracer # Hack for cython to keep it alive while the thread is alive (just the method in the SetTrace is not enough). # <<<<<<<<<<<<<< * # ELSE * # ENDIF */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_t, __pyx_n_s_tracer, ((PyObject *)__pyx_v_thread_tracer)) < 0) __PYX_ERR(0, 952, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_t, __pyx_n_s_tracer, ((PyObject *)__pyx_v_thread_tracer)) < 0) __PYX_ERR(0, 963, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":955 + /* "_pydevd_bundle/pydevd_cython.pyx":966 * # ELSE * # ENDIF * SetTrace(thread_tracer.__call__) # <<<<<<<<<<<<<< * return thread_tracer.__call__(frame, event, arg) * */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_SetTrace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_thread_tracer), __pyx_n_s_call_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 955, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_SetTrace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_thread_tracer), __pyx_n_s_call_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2); + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); + __Pyx_DECREF_SET(__pyx_t_1, function); } } if (!__pyx_t_9) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 955, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 966, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_t_2); } else { #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { + if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_3}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 955, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 966, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_9, __pyx_t_3}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 955, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 966, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { - __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 955, __pyx_L1_error) + __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = NULL; __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_t_3); __pyx_t_3 = 0; - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":956 + /* "_pydevd_bundle/pydevd_cython.pyx":967 * # ENDIF * SetTrace(thread_tracer.__call__) * return thread_tracer.__call__(frame, event, arg) # <<<<<<<<<<<<<< @@ -20328,38 +20690,38 @@ * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_thread_tracer), __pyx_n_s_call_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 956, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_thread_tracer), __pyx_n_s_call_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = NULL; __pyx_t_11 = 0; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2); + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); + __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_11 = 1; } } #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_2)) { + if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 956, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 956, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_11, 3+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_3 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 956, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(3+__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10); __pyx_t_10 = NULL; @@ -20373,16 +20735,16 @@ __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_11, __pyx_v_arg); - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 956, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":937 + /* "_pydevd_bundle/pydevd_cython.pyx":948 * * * def trace_dispatch(py_db, frame, event, arg): # <<<<<<<<<<<<<< @@ -20408,7 +20770,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":962 +/* "_pydevd_bundle/pydevd_cython.pyx":973 * cdef class SafeCallWrapper: * cdef method_object * def __init__(self, method_object): # <<<<<<<<<<<<<< @@ -20438,11 +20800,11 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_method_object)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_method_object)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 962, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 973, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -20453,7 +20815,7 @@ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 962, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 973, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.SafeCallWrapper.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -20471,7 +20833,7 @@ __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":963 + /* "_pydevd_bundle/pydevd_cython.pyx":974 * cdef method_object * def __init__(self, method_object): * self.method_object = method_object # <<<<<<<<<<<<<< @@ -20484,7 +20846,7 @@ __Pyx_DECREF(__pyx_v_self->method_object); __pyx_v_self->method_object = __pyx_v_method_object; - /* "_pydevd_bundle/pydevd_cython.pyx":962 + /* "_pydevd_bundle/pydevd_cython.pyx":973 * cdef class SafeCallWrapper: * cdef method_object * def __init__(self, method_object): # <<<<<<<<<<<<<< @@ -20498,7 +20860,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":964 +/* "_pydevd_bundle/pydevd_cython.pyx":975 * def __init__(self, method_object): * self.method_object = method_object * def __call__(self, *args): # <<<<<<<<<<<<<< @@ -20532,10 +20894,9 @@ PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("__call__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":967 + /* "_pydevd_bundle/pydevd_cython.pyx":978 * #Cannot use 'self' once inside the delegate call since we are borrowing the self reference f_trace field * #in the frame, and that reference might get destroyed by set trace on frame and parents * cdef PyObject* method_obj = self.method_object # <<<<<<<<<<<<<< @@ -20544,7 +20905,7 @@ */ __pyx_v_method_obj = ((PyObject *)__pyx_v_self->method_object); - /* "_pydevd_bundle/pydevd_cython.pyx":968 + /* "_pydevd_bundle/pydevd_cython.pyx":979 * #in the frame, and that reference might get destroyed by set trace on frame and parents * cdef PyObject* method_obj = self.method_object * Py_INCREF(method_obj) # <<<<<<<<<<<<<< @@ -20553,19 +20914,19 @@ */ Py_INCREF(((PyObject *)__pyx_v_method_obj)); - /* "_pydevd_bundle/pydevd_cython.pyx":969 + /* "_pydevd_bundle/pydevd_cython.pyx":980 * cdef PyObject* method_obj = self.method_object * Py_INCREF(method_obj) * ret = (method_obj)(*args) # <<<<<<<<<<<<<< * Py_XDECREF (method_obj) * return SafeCallWrapper(ret) if ret is not None else None */ - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_method_obj), __pyx_v_args, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_method_obj), __pyx_v_args, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":970 + /* "_pydevd_bundle/pydevd_cython.pyx":981 * Py_INCREF(method_obj) * ret = (method_obj)(*args) * Py_XDECREF (method_obj) # <<<<<<<<<<<<<< @@ -20574,7 +20935,7 @@ */ Py_XDECREF(__pyx_v_method_obj); - /* "_pydevd_bundle/pydevd_cython.pyx":971 + /* "_pydevd_bundle/pydevd_cython.pyx":982 * ret = (method_obj)(*args) * Py_XDECREF (method_obj) * return SafeCallWrapper(ret) if ret is not None else None # <<<<<<<<<<<<<< @@ -20584,16 +20945,10 @@ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = (__pyx_v_ret != Py_None); if ((__pyx_t_2 != 0)) { - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 971, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_v_ret); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v_ret); - __Pyx_GIVEREF(__pyx_v_ret); - PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_ret); - __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 971, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_1 = __pyx_t_4; - __pyx_t_4 = 0; + __pyx_t_1 = __pyx_t_3; + __pyx_t_3 = 0; } else { __Pyx_INCREF(Py_None); __pyx_t_1 = Py_None; @@ -20602,7 +20957,7 @@ __pyx_t_1 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":964 + /* "_pydevd_bundle/pydevd_cython.pyx":975 * def __init__(self, method_object): * self.method_object = method_object * def __call__(self, *args): # <<<<<<<<<<<<<< @@ -20614,7 +20969,6 @@ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.SafeCallWrapper.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -20911,7 +21265,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":974 +/* "_pydevd_bundle/pydevd_cython.pyx":985 * cdef class ThreadTracer: * cdef public tuple _args; * def __init__(self, tuple args): # <<<<<<<<<<<<<< @@ -20941,11 +21295,11 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 974, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 985, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; @@ -20956,13 +21310,13 @@ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 974, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 985, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(0, 974, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyTuple_Type), 1, "args", 1))) __PYX_ERR(0, 985, __pyx_L1_error) __pyx_r = __pyx_pf_14_pydevd_bundle_13pydevd_cython_12ThreadTracer___init__(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_ThreadTracer *)__pyx_v_self), __pyx_v_args); /* function exit code */ @@ -20979,7 +21333,7 @@ __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":975 + /* "_pydevd_bundle/pydevd_cython.pyx":986 * cdef public tuple _args; * def __init__(self, tuple args): * self._args = args # <<<<<<<<<<<<<< @@ -20992,7 +21346,7 @@ __Pyx_DECREF(__pyx_v_self->_args); __pyx_v_self->_args = __pyx_v_args; - /* "_pydevd_bundle/pydevd_cython.pyx":974 + /* "_pydevd_bundle/pydevd_cython.pyx":985 * cdef class ThreadTracer: * cdef public tuple _args; * def __init__(self, tuple args): # <<<<<<<<<<<<<< @@ -21006,7 +21360,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":983 +/* "_pydevd_bundle/pydevd_cython.pyx":994 * # ENDIF * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -21046,23 +21400,23 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 1); __PYX_ERR(0, 983, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 1); __PYX_ERR(0, 994, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 2); __PYX_ERR(0, 983, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 2); __PYX_ERR(0, 994, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 983, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 994, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; @@ -21077,7 +21431,7 @@ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 983, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 994, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -21124,7 +21478,7 @@ int __pyx_t_17; __Pyx_RefNannySetupContext("__call__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1007 + /* "_pydevd_bundle/pydevd_cython.pyx":1018 * # ENDIF * # print('ENTER: trace_dispatch', frame.f_code.co_filename, frame.f_lineno, event, frame.f_code.co_name) * py_db, t, additional_info, cache_skips, frame_skips_cache = self._args # <<<<<<<<<<<<<< @@ -21135,15 +21489,11 @@ __Pyx_INCREF(__pyx_t_1); if (likely(__pyx_t_1 != Py_None)) { PyObject* sequence = __pyx_t_1; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 5)) { if (size > 5) __Pyx_RaiseTooManyValuesError(5); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1007, __pyx_L1_error) + __PYX_ERR(0, 1018, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); @@ -21161,7 +21511,7 @@ Py_ssize_t i; PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6}; for (i=0; i < 5; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1007, __pyx_L1_error) + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1018, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } @@ -21169,10 +21519,10 @@ #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 1007, __pyx_L1_error) + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 1018, __pyx_L1_error) } - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo))))) __PYX_ERR(0, 1007, __pyx_L1_error) - if (!(likely(PyDict_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 1007, __pyx_L1_error) + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo))))) __PYX_ERR(0, 1018, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 1018, __pyx_L1_error) __pyx_v_py_db = __pyx_t_2; __pyx_t_2 = 0; __pyx_v_t = __pyx_t_3; @@ -21184,7 +21534,7 @@ __pyx_v_frame_skips_cache = __pyx_t_6; __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1008 + /* "_pydevd_bundle/pydevd_cython.pyx":1019 * # print('ENTER: trace_dispatch', frame.f_code.co_filename, frame.f_lineno, event, frame.f_code.co_name) * py_db, t, additional_info, cache_skips, frame_skips_cache = self._args * pydev_step_cmd = additional_info.pydev_step_cmd # <<<<<<<<<<<<<< @@ -21194,7 +21544,7 @@ __pyx_t_7 = __pyx_v_additional_info->pydev_step_cmd; __pyx_v_pydev_step_cmd = __pyx_t_7; - /* "_pydevd_bundle/pydevd_cython.pyx":1009 + /* "_pydevd_bundle/pydevd_cython.pyx":1020 * py_db, t, additional_info, cache_skips, frame_skips_cache = self._args * pydev_step_cmd = additional_info.pydev_step_cmd * is_stepping = pydev_step_cmd != -1 # <<<<<<<<<<<<<< @@ -21203,7 +21553,7 @@ */ __pyx_v_is_stepping = (__pyx_v_pydev_step_cmd != -1L); - /* "_pydevd_bundle/pydevd_cython.pyx":1011 + /* "_pydevd_bundle/pydevd_cython.pyx":1022 * is_stepping = pydev_step_cmd != -1 * * try: # <<<<<<<<<<<<<< @@ -21219,34 +21569,34 @@ __Pyx_XGOTREF(__pyx_t_10); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1012 + /* "_pydevd_bundle/pydevd_cython.pyx":1023 * * try: * if py_db._finish_debugging_session: # <<<<<<<<<<<<<< * if not py_db._termination_event_set: * # that was not working very well because jython gave some socket errors */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1012, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1023, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1012, __pyx_L3_error) + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1023, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_11) { - /* "_pydevd_bundle/pydevd_cython.pyx":1013 + /* "_pydevd_bundle/pydevd_cython.pyx":1024 * try: * if py_db._finish_debugging_session: * if not py_db._termination_event_set: # <<<<<<<<<<<<<< * # that was not working very well because jython gave some socket errors * try: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_termination_event_set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1013, __pyx_L3_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_termination_event_set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1024, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1013, __pyx_L3_error) + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1024, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = ((!__pyx_t_11) != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1015 + /* "_pydevd_bundle/pydevd_cython.pyx":1026 * if not py_db._termination_event_set: * # that was not working very well because jython gave some socket errors * try: # <<<<<<<<<<<<<< @@ -21262,28 +21612,28 @@ __Pyx_XGOTREF(__pyx_t_15); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1016 + /* "_pydevd_bundle/pydevd_cython.pyx":1027 * # that was not working very well because jython gave some socket errors * try: * if py_db.output_checker is None: # <<<<<<<<<<<<<< * kill_all_pydev_threads() * except: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_output_checker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1016, __pyx_L11_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_output_checker); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1027, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = (__pyx_t_12 != 0); if (__pyx_t_11) { - /* "_pydevd_bundle/pydevd_cython.pyx":1017 + /* "_pydevd_bundle/pydevd_cython.pyx":1028 * try: * if py_db.output_checker is None: * kill_all_pydev_threads() # <<<<<<<<<<<<<< * except: * traceback.print_exc() */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_kill_all_pydev_threads); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1017, __pyx_L11_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_kill_all_pydev_threads); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1028, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -21296,16 +21646,16 @@ } } if (__pyx_t_5) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1017, __pyx_L11_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1028, __pyx_L11_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { - __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1017, __pyx_L11_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1028, __pyx_L11_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1016 + /* "_pydevd_bundle/pydevd_cython.pyx":1027 * # that was not working very well because jython gave some socket errors * try: * if py_db.output_checker is None: # <<<<<<<<<<<<<< @@ -21314,7 +21664,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1015 + /* "_pydevd_bundle/pydevd_cython.pyx":1026 * if not py_db._termination_event_set: * # that was not working very well because jython gave some socket errors * try: # <<<<<<<<<<<<<< @@ -21334,7 +21684,7 @@ __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1018 + /* "_pydevd_bundle/pydevd_cython.pyx":1029 * if py_db.output_checker is None: * kill_all_pydev_threads() * except: # <<<<<<<<<<<<<< @@ -21343,21 +21693,21 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(0, 1018, __pyx_L13_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(0, 1029, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_5); - /* "_pydevd_bundle/pydevd_cython.pyx":1019 + /* "_pydevd_bundle/pydevd_cython.pyx":1030 * kill_all_pydev_threads() * except: * traceback.print_exc() # <<<<<<<<<<<<<< * py_db._termination_event_set = True * return None */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1019, __pyx_L13_except_error) + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1030, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1019, __pyx_L13_except_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1030, __pyx_L13_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -21371,10 +21721,10 @@ } } if (__pyx_t_3) { - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1019, __pyx_L13_except_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1030, __pyx_L13_except_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { - __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1019, __pyx_L13_except_error) + __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1030, __pyx_L13_except_error) } __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -21386,7 +21736,7 @@ } __pyx_L13_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":1015 + /* "_pydevd_bundle/pydevd_cython.pyx":1026 * if not py_db._termination_event_set: * # that was not working very well because jython gave some socket errors * try: # <<<<<<<<<<<<<< @@ -21406,16 +21756,16 @@ __pyx_L16_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":1020 + /* "_pydevd_bundle/pydevd_cython.pyx":1031 * except: * traceback.print_exc() * py_db._termination_event_set = True # <<<<<<<<<<<<<< * return None * */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_py_db, __pyx_n_s_termination_event_set, Py_True) < 0) __PYX_ERR(0, 1020, __pyx_L3_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_py_db, __pyx_n_s_termination_event_set, Py_True) < 0) __PYX_ERR(0, 1031, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1013 + /* "_pydevd_bundle/pydevd_cython.pyx":1024 * try: * if py_db._finish_debugging_session: * if not py_db._termination_event_set: # <<<<<<<<<<<<<< @@ -21424,7 +21774,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1021 + /* "_pydevd_bundle/pydevd_cython.pyx":1032 * traceback.print_exc() * py_db._termination_event_set = True * return None # <<<<<<<<<<<<<< @@ -21432,11 +21782,10 @@ * # if thread is not alive, cancel trace_dispatch processing */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1012 + /* "_pydevd_bundle/pydevd_cython.pyx":1023 * * try: * if py_db._finish_debugging_session: # <<<<<<<<<<<<<< @@ -21445,14 +21794,14 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1024 + /* "_pydevd_bundle/pydevd_cython.pyx":1035 * * # if thread is not alive, cancel trace_dispatch processing * if not is_thread_alive(t): # <<<<<<<<<<<<<< * py_db._process_thread_not_alive(get_thread_id(t)) * return None # suspend tracing */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_is_thread_alive); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1024, __pyx_L3_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_is_thread_alive); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1035, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { @@ -21465,13 +21814,13 @@ } } if (!__pyx_t_1) { - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1024, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1035, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_t}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1024, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1035, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -21479,39 +21828,39 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_t}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1024, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1035, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1024, __pyx_L3_error) + __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1035, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_t); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1024, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1035, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1024, __pyx_L3_error) + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1035, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = ((!__pyx_t_11) != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1025 + /* "_pydevd_bundle/pydevd_cython.pyx":1036 * # if thread is not alive, cancel trace_dispatch processing * if not is_thread_alive(t): * py_db._process_thread_not_alive(get_thread_id(t)) # <<<<<<<<<<<<<< * return None # suspend tracing * */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_process_thread_not_alive); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_process_thread_not_alive); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_thread_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_thread_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -21524,13 +21873,13 @@ } } if (!__pyx_t_2) { - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_t}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); } else @@ -21538,19 +21887,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_t}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; __Pyx_INCREF(__pyx_v_t); __Pyx_GIVEREF(__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_t); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } @@ -21567,14 +21916,14 @@ } } if (!__pyx_t_1) { - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_5); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -21583,20 +21932,20 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_t_4}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { - __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1025, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1036, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } @@ -21604,7 +21953,7 @@ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1026 + /* "_pydevd_bundle/pydevd_cython.pyx":1037 * if not is_thread_alive(t): * py_db._process_thread_not_alive(get_thread_id(t)) * return None # suspend tracing # <<<<<<<<<<<<<< @@ -21612,11 +21961,10 @@ * try: */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1024 + /* "_pydevd_bundle/pydevd_cython.pyx":1035 * * # if thread is not alive, cancel trace_dispatch processing * if not is_thread_alive(t): # <<<<<<<<<<<<<< @@ -21625,7 +21973,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1028 + /* "_pydevd_bundle/pydevd_cython.pyx":1039 * return None # suspend tracing * * try: # <<<<<<<<<<<<<< @@ -21641,29 +21989,29 @@ __Pyx_XGOTREF(__pyx_t_13); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1030 + /* "_pydevd_bundle/pydevd_cython.pyx":1041 * try: * # Make fast path faster! * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] # <<<<<<<<<<<<<< * except: * abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame) */ - __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1030, __pyx_L21_error) + __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1041, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1030, __pyx_L21_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1041, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1030, __pyx_L21_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1041, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = PyObject_GetItem(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1030, __pyx_L21_error) + __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1041, __pyx_L21_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (!(likely(PyTuple_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 1030, __pyx_L21_error) + if (!(likely(PyTuple_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 1041, __pyx_L21_error) __pyx_v_abs_path_real_path_and_base = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1028 + /* "_pydevd_bundle/pydevd_cython.pyx":1039 * return None # suspend tracing * * try: # <<<<<<<<<<<<<< @@ -21683,7 +22031,7 @@ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1031 + /* "_pydevd_bundle/pydevd_cython.pyx":1042 * # Make fast path faster! * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] * except: # <<<<<<<<<<<<<< @@ -21692,19 +22040,19 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_3, &__pyx_t_5) < 0) __PYX_ERR(0, 1031, __pyx_L23_except_error) + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_3, &__pyx_t_5) < 0) __PYX_ERR(0, 1042, __pyx_L23_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_5); - /* "_pydevd_bundle/pydevd_cython.pyx":1032 + /* "_pydevd_bundle/pydevd_cython.pyx":1043 * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] * except: * abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame) # <<<<<<<<<<<<<< * * if py_db.thread_analyser is not None: */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1032, __pyx_L23_except_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1043, __pyx_L23_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { @@ -21717,13 +22065,13 @@ } } if (!__pyx_t_2) { - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_frame); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1032, __pyx_L23_except_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_frame); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1043, __pyx_L23_except_error) __Pyx_GOTREF(__pyx_t_4); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_frame}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1032, __pyx_L23_except_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1043, __pyx_L23_except_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); } else @@ -21731,25 +22079,25 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[2] = {__pyx_t_2, __pyx_v_frame}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1032, __pyx_L23_except_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1043, __pyx_L23_except_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1032, __pyx_L23_except_error) + __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1043, __pyx_L23_except_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_2); __pyx_t_2 = NULL; __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_v_frame); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_16, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1032, __pyx_L23_except_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_16, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1043, __pyx_L23_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 1032, __pyx_L23_except_error) + if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 1043, __pyx_L23_except_error) __Pyx_XDECREF_SET(__pyx_v_abs_path_real_path_and_base, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -21759,7 +22107,7 @@ } __pyx_L23_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":1028 + /* "_pydevd_bundle/pydevd_cython.pyx":1039 * return None # suspend tracing * * try: # <<<<<<<<<<<<<< @@ -21779,30 +22127,30 @@ __pyx_L26_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":1034 + /* "_pydevd_bundle/pydevd_cython.pyx":1045 * abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame) * * if py_db.thread_analyser is not None: # <<<<<<<<<<<<<< * py_db.thread_analyser.log_event(frame) * */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_thread_analyser); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1034, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_thread_analyser); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1045, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = (__pyx_t_5 != Py_None); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = (__pyx_t_12 != 0); if (__pyx_t_11) { - /* "_pydevd_bundle/pydevd_cython.pyx":1035 + /* "_pydevd_bundle/pydevd_cython.pyx":1046 * * if py_db.thread_analyser is not None: * py_db.thread_analyser.log_event(frame) # <<<<<<<<<<<<<< * * if py_db.asyncio_analyser is not None: */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_thread_analyser); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1035, __pyx_L3_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_thread_analyser); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1046, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_log_event); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1035, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_log_event); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1046, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; @@ -21816,13 +22164,13 @@ } } if (!__pyx_t_3) { - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1035, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_frame}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1035, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -21830,19 +22178,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[2] = {__pyx_t_3, __pyx_v_frame}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1035, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1035, __pyx_L3_error) + __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1046, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_frame); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1035, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } @@ -21850,7 +22198,7 @@ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1034 + /* "_pydevd_bundle/pydevd_cython.pyx":1045 * abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame) * * if py_db.thread_analyser is not None: # <<<<<<<<<<<<<< @@ -21859,30 +22207,30 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1037 + /* "_pydevd_bundle/pydevd_cython.pyx":1048 * py_db.thread_analyser.log_event(frame) * * if py_db.asyncio_analyser is not None: # <<<<<<<<<<<<<< * py_db.asyncio_analyser.log_event(frame) * */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_asyncio_analyser); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1037, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_asyncio_analyser); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1048, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = (__pyx_t_5 != Py_None); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = (__pyx_t_11 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1038 + /* "_pydevd_bundle/pydevd_cython.pyx":1049 * * if py_db.asyncio_analyser is not None: * py_db.asyncio_analyser.log_event(frame) # <<<<<<<<<<<<<< * * filename = abs_path_real_path_and_base[1] */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_asyncio_analyser); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1038, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_asyncio_analyser); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1049, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_log_event); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1038, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_log_event); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1049, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -21896,13 +22244,13 @@ } } if (!__pyx_t_6) { - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1038, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_frame); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1049, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_frame}; - __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1038, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1049, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_5); } else @@ -21910,19 +22258,19 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_v_frame}; - __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1038, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1049, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_5); } else #endif { - __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1038, __pyx_L3_error) + __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1049, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_frame); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1038, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1049, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } @@ -21930,7 +22278,7 @@ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1037 + /* "_pydevd_bundle/pydevd_cython.pyx":1048 * py_db.thread_analyser.log_event(frame) * * if py_db.asyncio_analyser is not None: # <<<<<<<<<<<<<< @@ -21939,7 +22287,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1040 + /* "_pydevd_bundle/pydevd_cython.pyx":1051 * py_db.asyncio_analyser.log_event(frame) * * filename = abs_path_real_path_and_base[1] # <<<<<<<<<<<<<< @@ -21948,29 +22296,29 @@ */ if (unlikely(__pyx_v_abs_path_real_path_and_base == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1040, __pyx_L3_error) + __PYX_ERR(0, 1051, __pyx_L3_error) } - __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_abs_path_real_path_and_base, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1040, __pyx_L3_error) + __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_abs_path_real_path_and_base, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1051, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 1040, __pyx_L3_error) + if (!(likely(PyString_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 1051, __pyx_L3_error) __pyx_v_filename = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1043 + /* "_pydevd_bundle/pydevd_cython.pyx":1054 * # Note: it's important that the context name is also given because we may hit something once * # in the global context and another in the local context. * cache_key = (frame.f_lineno, frame.f_code.co_name, filename) # <<<<<<<<<<<<<< * if not is_stepping and cache_key in cache_skips: * # print('skipped: trace_dispatch (cache hit)', cache_key, frame.f_lineno, event, frame.f_code.co_name) */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1043, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_lineno); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1054, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1043, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1054, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1043, __pyx_L3_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1054, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1043, __pyx_L3_error) + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1054, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); @@ -21984,7 +22332,7 @@ __pyx_v_cache_key = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1044 + /* "_pydevd_bundle/pydevd_cython.pyx":1055 * # in the global context and another in the local context. * cache_key = (frame.f_lineno, frame.f_code.co_name, filename) * if not is_stepping and cache_key in cache_skips: # <<<<<<<<<<<<<< @@ -21999,15 +22347,15 @@ } if (unlikely(__pyx_v_cache_skips == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1044, __pyx_L3_error) + __PYX_ERR(0, 1055, __pyx_L3_error) } - __pyx_t_11 = (__Pyx_PyDict_ContainsTF(__pyx_v_cache_key, __pyx_v_cache_skips, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1044, __pyx_L3_error) + __pyx_t_11 = (__Pyx_PyDict_ContainsTF(__pyx_v_cache_key, __pyx_v_cache_skips, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1055, __pyx_L3_error) __pyx_t_17 = (__pyx_t_11 != 0); __pyx_t_12 = __pyx_t_17; __pyx_L32_bool_binop_done:; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1046 + /* "_pydevd_bundle/pydevd_cython.pyx":1057 * if not is_stepping and cache_key in cache_skips: * # print('skipped: trace_dispatch (cache hit)', cache_key, frame.f_lineno, event, frame.f_code.co_name) * return None # <<<<<<<<<<<<<< @@ -22015,11 +22363,10 @@ * file_type = get_file_type( */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1044 + /* "_pydevd_bundle/pydevd_cython.pyx":1055 * # in the global context and another in the local context. * cache_key = (frame.f_lineno, frame.f_code.co_name, filename) * if not is_stepping and cache_key in cache_skips: # <<<<<<<<<<<<<< @@ -22028,17 +22375,17 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1048 + /* "_pydevd_bundle/pydevd_cython.pyx":1059 * return None * * file_type = get_file_type( # <<<<<<<<<<<<<< * abs_path_real_path_and_base[-1]) # we don't want to debug threading or anything related to pydevd * */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_file_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1048, __pyx_L3_error) + __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_file_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1059, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); - /* "_pydevd_bundle/pydevd_cython.pyx":1049 + /* "_pydevd_bundle/pydevd_cython.pyx":1060 * * file_type = get_file_type( * abs_path_real_path_and_base[-1]) # we don't want to debug threading or anything related to pydevd # <<<<<<<<<<<<<< @@ -22047,9 +22394,9 @@ */ if (unlikely(__pyx_v_abs_path_real_path_and_base == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1049, __pyx_L3_error) + __PYX_ERR(0, 1060, __pyx_L3_error) } - __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_abs_path_real_path_and_base, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1049, __pyx_L3_error) + __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_abs_path_real_path_and_base, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1060, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { @@ -22062,14 +22409,14 @@ } } if (!__pyx_t_6) { - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1048, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1059, __pyx_L3_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1048, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1059, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -22078,20 +22425,20 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[2] = {__pyx_t_6, __pyx_t_5}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1048, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1059, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1048, __pyx_L3_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1059, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1048, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1059, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } @@ -22100,7 +22447,7 @@ __pyx_v_file_type = __pyx_t_4; __pyx_t_4 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1051 + /* "_pydevd_bundle/pydevd_cython.pyx":1062 * abs_path_real_path_and_base[-1]) # we don't want to debug threading or anything related to pydevd * * if file_type is not None: # <<<<<<<<<<<<<< @@ -22111,27 +22458,27 @@ __pyx_t_17 = (__pyx_t_12 != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":1052 + /* "_pydevd_bundle/pydevd_cython.pyx":1063 * * if file_type is not None: * if file_type == 1: # inlining LIB_FILE = 1 # <<<<<<<<<<<<<< * if py_db.not_in_scope(filename): * # print('skipped: trace_dispatch (not in scope)', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) */ - __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_file_type, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1052, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_file_type, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1063, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1052, __pyx_L3_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1063, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":1053 + /* "_pydevd_bundle/pydevd_cython.pyx":1064 * if file_type is not None: * if file_type == 1: # inlining LIB_FILE = 1 * if py_db.not_in_scope(filename): # <<<<<<<<<<<<<< * # print('skipped: trace_dispatch (not in scope)', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) * cache_skips[cache_key] = 1 */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_not_in_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1053, __pyx_L3_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_not_in_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -22144,13 +22491,13 @@ } } if (!__pyx_t_1) { - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1053, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_filename}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1053, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1064, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); } else @@ -22158,29 +22505,29 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_filename}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1053, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1064, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1053, __pyx_L3_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_filename); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1053, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1064, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1053, __pyx_L3_error) + __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1064, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":1055 + /* "_pydevd_bundle/pydevd_cython.pyx":1066 * if py_db.not_in_scope(filename): * # print('skipped: trace_dispatch (not in scope)', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) * cache_skips[cache_key] = 1 # <<<<<<<<<<<<<< @@ -22189,11 +22536,11 @@ */ if (unlikely(__pyx_v_cache_skips == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1055, __pyx_L3_error) + __PYX_ERR(0, 1066, __pyx_L3_error) } - if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1055, __pyx_L3_error) + if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1066, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1056 + /* "_pydevd_bundle/pydevd_cython.pyx":1067 * # print('skipped: trace_dispatch (not in scope)', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) * cache_skips[cache_key] = 1 * return None # <<<<<<<<<<<<<< @@ -22201,11 +22548,10 @@ * # print('skipped: trace_dispatch', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1053 + /* "_pydevd_bundle/pydevd_cython.pyx":1064 * if file_type is not None: * if file_type == 1: # inlining LIB_FILE = 1 * if py_db.not_in_scope(filename): # <<<<<<<<<<<<<< @@ -22214,7 +22560,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1052 + /* "_pydevd_bundle/pydevd_cython.pyx":1063 * * if file_type is not None: * if file_type == 1: # inlining LIB_FILE = 1 # <<<<<<<<<<<<<< @@ -22224,7 +22570,7 @@ goto __pyx_L35; } - /* "_pydevd_bundle/pydevd_cython.pyx":1059 + /* "_pydevd_bundle/pydevd_cython.pyx":1070 * else: * # print('skipped: trace_dispatch', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) * cache_skips[cache_key] = 1 # <<<<<<<<<<<<<< @@ -22234,11 +22580,11 @@ /*else*/ { if (unlikely(__pyx_v_cache_skips == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1059, __pyx_L3_error) + __PYX_ERR(0, 1070, __pyx_L3_error) } - if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1059, __pyx_L3_error) + if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1070, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1060 + /* "_pydevd_bundle/pydevd_cython.pyx":1071 * # print('skipped: trace_dispatch', abs_path_real_path_and_base[-1], frame.f_lineno, event, frame.f_code.co_name, file_type) * cache_skips[cache_key] = 1 * return None # <<<<<<<<<<<<<< @@ -22246,13 +22592,12 @@ * if is_stepping: */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; } __pyx_L35:; - /* "_pydevd_bundle/pydevd_cython.pyx":1051 + /* "_pydevd_bundle/pydevd_cython.pyx":1062 * abs_path_real_path_and_base[-1]) # we don't want to debug threading or anything related to pydevd * * if file_type is not None: # <<<<<<<<<<<<<< @@ -22261,7 +22606,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1062 + /* "_pydevd_bundle/pydevd_cython.pyx":1073 * return None * * if is_stepping: # <<<<<<<<<<<<<< @@ -22271,23 +22616,23 @@ __pyx_t_17 = (__pyx_v_is_stepping != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":1063 + /* "_pydevd_bundle/pydevd_cython.pyx":1074 * * if is_stepping: * if py_db.is_filter_enabled and py_db.is_ignored_by_filters(filename): # <<<<<<<<<<<<<< * # ignore files matching stepping filters * return None */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_filter_enabled); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1063, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_filter_enabled); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1074, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1063, __pyx_L3_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1074, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_12) { } else { __pyx_t_17 = __pyx_t_12; goto __pyx_L39_bool_binop_done; } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_ignored_by_filters); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1063, __pyx_L3_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_ignored_by_filters); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1074, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -22300,13 +22645,13 @@ } } if (!__pyx_t_5) { - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1063, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1074, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_filename}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1063, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1074, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else @@ -22314,31 +22659,31 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[2] = {__pyx_t_5, __pyx_v_filename}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1063, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1074, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1063, __pyx_L3_error) + __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1074, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_filename); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1063, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1074, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1063, __pyx_L3_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1074, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_17 = __pyx_t_12; __pyx_L39_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":1065 + /* "_pydevd_bundle/pydevd_cython.pyx":1076 * if py_db.is_filter_enabled and py_db.is_ignored_by_filters(filename): * # ignore files matching stepping filters * return None # <<<<<<<<<<<<<< @@ -22346,11 +22691,10 @@ * # ignore library files while stepping */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1063 + /* "_pydevd_bundle/pydevd_cython.pyx":1074 * * if is_stepping: * if py_db.is_filter_enabled and py_db.is_ignored_by_filters(filename): # <<<<<<<<<<<<<< @@ -22359,23 +22703,23 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1066 + /* "_pydevd_bundle/pydevd_cython.pyx":1077 * # ignore files matching stepping filters * return None * if py_db.is_filter_libraries and py_db.not_in_scope(filename): # <<<<<<<<<<<<<< * # ignore library files while stepping * return None */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_filter_libraries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1066, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_is_filter_libraries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1077, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1066, __pyx_L3_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1077, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_12) { } else { __pyx_t_17 = __pyx_t_12; goto __pyx_L42_bool_binop_done; } - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_not_in_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1066, __pyx_L3_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_not_in_scope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1077, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { @@ -22388,13 +22732,13 @@ } } if (!__pyx_t_1) { - __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1066, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1077, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); } else { #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_filename}; - __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1066, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1077, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); } else @@ -22402,31 +22746,31 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[2] = {__pyx_t_1, __pyx_v_filename}; - __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1066, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1077, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { - __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1066, __pyx_L3_error) + __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1077, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_filename); __Pyx_GIVEREF(__pyx_v_filename); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_filename); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1066, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1077, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1066, __pyx_L3_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1077, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_17 = __pyx_t_12; __pyx_L42_bool_binop_done:; if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":1068 + /* "_pydevd_bundle/pydevd_cython.pyx":1079 * if py_db.is_filter_libraries and py_db.not_in_scope(filename): * # ignore library files while stepping * return None # <<<<<<<<<<<<<< @@ -22434,11 +22778,10 @@ * # print('trace_dispatch', base, frame.f_lineno, event, frame.f_code.co_name, file_type) */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1066 + /* "_pydevd_bundle/pydevd_cython.pyx":1077 * # ignore files matching stepping filters * return None * if py_db.is_filter_libraries and py_db.not_in_scope(filename): # <<<<<<<<<<<<<< @@ -22447,7 +22790,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1062 + /* "_pydevd_bundle/pydevd_cython.pyx":1073 * return None * * if is_stepping: # <<<<<<<<<<<<<< @@ -22456,7 +22799,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1071 + /* "_pydevd_bundle/pydevd_cython.pyx":1082 * * # print('trace_dispatch', base, frame.f_lineno, event, frame.f_code.co_name, file_type) * if additional_info.is_tracing: # <<<<<<<<<<<<<< @@ -22466,7 +22809,7 @@ __pyx_t_17 = (__pyx_v_additional_info->is_tracing != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":1072 + /* "_pydevd_bundle/pydevd_cython.pyx":1083 * # print('trace_dispatch', base, frame.f_lineno, event, frame.f_code.co_name, file_type) * if additional_info.is_tracing: * return None # we don't wan't to trace code invoked from pydevd_frame.trace_dispatch # <<<<<<<<<<<<<< @@ -22474,11 +22817,10 @@ * # Just create PyDBFrame directly (removed support for Python versions < 2.5, which required keeping a weak */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1071 + /* "_pydevd_bundle/pydevd_cython.pyx":1082 * * # print('trace_dispatch', base, frame.f_lineno, event, frame.f_code.co_name, file_type) * if additional_info.is_tracing: # <<<<<<<<<<<<<< @@ -22487,24 +22829,24 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1077 + /* "_pydevd_bundle/pydevd_cython.pyx":1088 * # reference to the frame). * ret = PyDBFrame((py_db, filename, additional_info, t, frame_skips_cache, * (frame.f_code.co_name, frame.f_code.co_firstlineno, filename))).trace_dispatch(frame, # <<<<<<<<<<<<<< * event, arg) * if ret is None: */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1077, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1088, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1077, __pyx_L3_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1088, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1077, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1088, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_firstlineno); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1077, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_co_firstlineno); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1088, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1077, __pyx_L3_error) + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1088, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); @@ -22516,14 +22858,14 @@ __pyx_t_3 = 0; __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1076 + /* "_pydevd_bundle/pydevd_cython.pyx":1087 * # Just create PyDBFrame directly (removed support for Python versions < 2.5, which required keeping a weak * # reference to the frame). * ret = PyDBFrame((py_db, filename, additional_info, t, frame_skips_cache, # <<<<<<<<<<<<<< * (frame.f_code.co_name, frame.f_code.co_firstlineno, filename))).trace_dispatch(frame, * event, arg) */ - __pyx_t_5 = PyTuple_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1076, __pyx_L3_error) + __pyx_t_5 = PyTuple_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1087, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_py_db); __Pyx_GIVEREF(__pyx_v_py_db); @@ -22543,38 +22885,33 @@ __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1076, __pyx_L3_error) + __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame), __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1087, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_5); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1076, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1078 + /* "_pydevd_bundle/pydevd_cython.pyx":1089 * ret = PyDBFrame((py_db, filename, additional_info, t, frame_skips_cache, * (frame.f_code.co_name, frame.f_code.co_firstlineno, filename))).trace_dispatch(frame, * event, arg) # <<<<<<<<<<<<<< * if ret is None: * cache_skips[cache_key] = 1 */ - if (!(likely(PyString_CheckExact(__pyx_v_event))||((__pyx_v_event) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_event)->tp_name), 0))) __PYX_ERR(0, 1078, __pyx_L3_error) + if (!(likely(PyString_CheckExact(__pyx_v_event))||((__pyx_v_event) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_event)->tp_name), 0))) __PYX_ERR(0, 1089, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1077 + /* "_pydevd_bundle/pydevd_cython.pyx":1088 * # reference to the frame). * ret = PyDBFrame((py_db, filename, additional_info, t, frame_skips_cache, * (frame.f_code.co_name, frame.f_code.co_firstlineno, filename))).trace_dispatch(frame, # <<<<<<<<<<<<<< * event, arg) * if ret is None: */ - __pyx_t_4 = ((struct __pyx_vtabstruct_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_t_5)->__pyx_vtab)->trace_dispatch(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_t_5), __pyx_v_frame, ((PyObject*)__pyx_v_event), __pyx_v_arg, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1077, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v_ret = __pyx_t_4; - __pyx_t_4 = 0; + __pyx_t_5 = ((struct __pyx_vtabstruct_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_t_4)->__pyx_vtab)->trace_dispatch(((struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *)__pyx_t_4), __pyx_v_frame, ((PyObject*)__pyx_v_event), __pyx_v_arg, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1088, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_ret = __pyx_t_5; + __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1079 + /* "_pydevd_bundle/pydevd_cython.pyx":1090 * (frame.f_code.co_name, frame.f_code.co_firstlineno, filename))).trace_dispatch(frame, * event, arg) * if ret is None: # <<<<<<<<<<<<<< @@ -22585,7 +22922,7 @@ __pyx_t_12 = (__pyx_t_17 != 0); if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1080 + /* "_pydevd_bundle/pydevd_cython.pyx":1091 * event, arg) * if ret is None: * cache_skips[cache_key] = 1 # <<<<<<<<<<<<<< @@ -22594,11 +22931,11 @@ */ if (unlikely(__pyx_v_cache_skips == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1080, __pyx_L3_error) + __PYX_ERR(0, 1091, __pyx_L3_error) } - if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1080, __pyx_L3_error) + if (unlikely(PyDict_SetItem(__pyx_v_cache_skips, __pyx_v_cache_key, __pyx_int_1) < 0)) __PYX_ERR(0, 1091, __pyx_L3_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1081 + /* "_pydevd_bundle/pydevd_cython.pyx":1092 * if ret is None: * cache_skips[cache_key] = 1 * return None # <<<<<<<<<<<<<< @@ -22606,11 +22943,10 @@ * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1079 + /* "_pydevd_bundle/pydevd_cython.pyx":1090 * (frame.f_code.co_name, frame.f_code.co_firstlineno, filename))).trace_dispatch(frame, * event, arg) * if ret is None: # <<<<<<<<<<<<<< @@ -22619,7 +22955,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1084 + /* "_pydevd_bundle/pydevd_cython.pyx":1095 * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * return SafeCallWrapper(ret) # <<<<<<<<<<<<<< @@ -22627,19 +22963,13 @@ * # return ret */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1084, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_INCREF(__pyx_v_ret); - __Pyx_GIVEREF(__pyx_v_ret); - PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_ret); - __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1084, __pyx_L3_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper), __pyx_v_ret); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1095, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L7_try_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1011 + /* "_pydevd_bundle/pydevd_cython.pyx":1022 * is_stepping = pydev_step_cmd != -1 * * try: # <<<<<<<<<<<<<< @@ -22656,7 +22986,7 @@ __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1089 + /* "_pydevd_bundle/pydevd_cython.pyx":1100 * # ENDIF * * except SystemExit: # <<<<<<<<<<<<<< @@ -22666,12 +22996,12 @@ __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_SystemExit); if (__pyx_t_7) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_3) < 0) __PYX_ERR(0, 1089, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_3) < 0) __PYX_ERR(0, 1100, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_3); - /* "_pydevd_bundle/pydevd_cython.pyx":1090 + /* "_pydevd_bundle/pydevd_cython.pyx":1101 * * except SystemExit: * return None # <<<<<<<<<<<<<< @@ -22679,15 +23009,14 @@ * except Exception: */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L6_except_return; } - /* "_pydevd_bundle/pydevd_cython.pyx":1092 + /* "_pydevd_bundle/pydevd_cython.pyx":1103 * return None * * except Exception: # <<<<<<<<<<<<<< @@ -22697,25 +23026,25 @@ __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_7) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.ThreadTracer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(0, 1092, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(0, 1103, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_5); - /* "_pydevd_bundle/pydevd_cython.pyx":1093 + /* "_pydevd_bundle/pydevd_cython.pyx":1104 * * except Exception: * if py_db._finish_debugging_session: # <<<<<<<<<<<<<< * return None # Don't log errors when we're shutting down. * # Log it */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1093, __pyx_L5_except_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_py_db, __pyx_n_s_finish_debugging_session); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1104, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1093, __pyx_L5_except_error) + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1104, __pyx_L5_except_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_12) { - /* "_pydevd_bundle/pydevd_cython.pyx":1094 + /* "_pydevd_bundle/pydevd_cython.pyx":1105 * except Exception: * if py_db._finish_debugging_session: * return None # Don't log errors when we're shutting down. # <<<<<<<<<<<<<< @@ -22723,14 +23052,13 @@ * try: */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L6_except_return; - /* "_pydevd_bundle/pydevd_cython.pyx":1093 + /* "_pydevd_bundle/pydevd_cython.pyx":1104 * * except Exception: * if py_db._finish_debugging_session: # <<<<<<<<<<<<<< @@ -22739,7 +23067,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1096 + /* "_pydevd_bundle/pydevd_cython.pyx":1107 * return None # Don't log errors when we're shutting down. * # Log it * try: # <<<<<<<<<<<<<< @@ -22755,30 +23083,30 @@ __Pyx_XGOTREF(__pyx_t_15); /*try:*/ { - /* "_pydevd_bundle/pydevd_cython.pyx":1097 + /* "_pydevd_bundle/pydevd_cython.pyx":1108 * # Log it * try: * if traceback is not None: # <<<<<<<<<<<<<< * # This can actually happen during the interpreter shutdown in Python 2.7 * traceback.print_exc() */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1097, __pyx_L51_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1108, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = (__pyx_t_1 != Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_17 = (__pyx_t_12 != 0); if (__pyx_t_17) { - /* "_pydevd_bundle/pydevd_cython.pyx":1099 + /* "_pydevd_bundle/pydevd_cython.pyx":1110 * if traceback is not None: * # This can actually happen during the interpreter shutdown in Python 2.7 * traceback.print_exc() # <<<<<<<<<<<<<< * except: * # Error logging? We're really in the interpreter shutdown... */ - __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1099, __pyx_L51_error) + __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_traceback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1110, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1099, __pyx_L51_error) + __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_print_exc); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1110, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; @@ -22792,16 +23120,16 @@ } } if (__pyx_t_6) { - __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1099, __pyx_L51_error) + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1110, __pyx_L51_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { - __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1099, __pyx_L51_error) + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1110, __pyx_L51_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1097 + /* "_pydevd_bundle/pydevd_cython.pyx":1108 * # Log it * try: * if traceback is not None: # <<<<<<<<<<<<<< @@ -22810,7 +23138,7 @@ */ } - /* "_pydevd_bundle/pydevd_cython.pyx":1096 + /* "_pydevd_bundle/pydevd_cython.pyx":1107 * return None # Don't log errors when we're shutting down. * # Log it * try: # <<<<<<<<<<<<<< @@ -22828,7 +23156,7 @@ __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1100 + /* "_pydevd_bundle/pydevd_cython.pyx":1111 * # This can actually happen during the interpreter shutdown in Python 2.7 * traceback.print_exc() * except: # <<<<<<<<<<<<<< @@ -22847,7 +23175,7 @@ __pyx_L58_try_end:; } - /* "_pydevd_bundle/pydevd_cython.pyx":1104 + /* "_pydevd_bundle/pydevd_cython.pyx":1115 * # (https://github.com/fabioz/PyDev.Debugger/issues/8) * pass * return None # <<<<<<<<<<<<<< @@ -22855,8 +23183,7 @@ * */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -22865,7 +23192,7 @@ goto __pyx_L5_except_error; __pyx_L5_except_error:; - /* "_pydevd_bundle/pydevd_cython.pyx":1011 + /* "_pydevd_bundle/pydevd_cython.pyx":1022 * is_stepping = pydev_step_cmd != -1 * * try: # <<<<<<<<<<<<<< @@ -22891,7 +23218,7 @@ goto __pyx_L0; } - /* "_pydevd_bundle/pydevd_cython.pyx":983 + /* "_pydevd_bundle/pydevd_cython.pyx":994 * # ENDIF * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -22926,7 +23253,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":973 +/* "_pydevd_bundle/pydevd_cython.pyx":984 * return SafeCallWrapper(ret) if ret is not None else None * cdef class ThreadTracer: * cdef public tuple _args; # <<<<<<<<<<<<<< @@ -22981,7 +23308,7 @@ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__set__", 0); - if (!(likely(PyTuple_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 973, __pyx_L1_error) + if (!(likely(PyTuple_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 984, __pyx_L1_error) __pyx_t_1 = __pyx_v_value; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); @@ -23318,7 +23645,7 @@ return __pyx_r; } -/* "_pydevd_bundle/pydevd_cython.pyx":1120 +/* "_pydevd_bundle/pydevd_cython.pyx":1131 * * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -23358,29 +23685,29 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 1); __PYX_ERR(0, 1120, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 1); __PYX_ERR(0, 1131, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 2); __PYX_ERR(0, 1120, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 2); __PYX_ERR(0, 1131, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: - if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { - __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 3); __PYX_ERR(0, 1120, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, 3); __PYX_ERR(0, 1131, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 1120, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(0, 1131, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; @@ -23397,7 +23724,7 @@ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1120, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1131, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -23420,28 +23747,28 @@ PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__call__", 0); - /* "_pydevd_bundle/pydevd_cython.pyx":1121 + /* "_pydevd_bundle/pydevd_cython.pyx":1132 * * def __call__(self, frame, event, arg): * _tid_to_last_frame[self._args[1].ident] = frame # <<<<<<<<<<<<<< * return _original_call(self, frame, event, arg) * */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_tid_to_last_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1121, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_tid_to_last_frame); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_args_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1121, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_args_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1121, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ident); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1121, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ident); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_2, __pyx_v_frame) < 0)) __PYX_ERR(0, 1121, __pyx_L1_error) + if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_2, __pyx_v_frame) < 0)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1122 + /* "_pydevd_bundle/pydevd_cython.pyx":1133 * def __call__(self, frame, event, arg): * _tid_to_last_frame[self._args[1].ident] = frame * return _original_call(self, frame, event, arg) # <<<<<<<<<<<<<< @@ -23449,7 +23776,7 @@ * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_original_call); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1122, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_original_call); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_4 = 0; @@ -23466,7 +23793,7 @@ #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_self, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1122, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else @@ -23474,13 +23801,13 @@ #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_self, __pyx_v_frame, __pyx_v_event, __pyx_v_arg}; - __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1122, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { - __pyx_t_5 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1122, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; @@ -23497,7 +23824,7 @@ __Pyx_INCREF(__pyx_v_arg); __Pyx_GIVEREF(__pyx_v_arg); PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_4, __pyx_v_arg); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1122, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } @@ -23506,7 +23833,7 @@ __pyx_t_2 = 0; goto __pyx_L0; - /* "_pydevd_bundle/pydevd_cython.pyx":1120 + /* "_pydevd_bundle/pydevd_cython.pyx":1131 * * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< @@ -23563,17 +23890,17 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PyDBAdditionalThreadInfo", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PyDBAdditionalThreadInfo", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) } @@ -24174,17 +24501,17 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PyDBFrame", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PyDBFrame", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) } @@ -24663,17 +24990,17 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_SafeCallWrapper", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_SafeCallWrapper", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) } @@ -25141,17 +25468,17 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ThreadTracer", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ThreadTracer", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) } @@ -25992,9 +26319,10 @@ {"handle_exception", (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_13handle_exception, METH_VARARGS|METH_KEYWORDS, 0}, {"get_func_name", (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_15get_func_name, METH_O, 0}, {"manage_return_values", (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_17manage_return_values, METH_VARARGS|METH_KEYWORDS, 0}, - {"trace_dispatch", (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_19trace_dispatch, METH_VARARGS|METH_KEYWORDS, 0}, - {"__reduce_cython__", (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_21__reduce_cython__, METH_NOARGS, 0}, - {"__setstate_cython__", (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_23__setstate_cython__, METH_O, 0}, + {"clear_run_state", (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_19clear_run_state, METH_O, 0}, + {"trace_dispatch", (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_21trace_dispatch, METH_VARARGS|METH_KEYWORDS, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_23__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_25__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; @@ -26399,6 +26727,7 @@ {&__pyx_n_s_can_not_skip, __pyx_k_can_not_skip, sizeof(__pyx_k_can_not_skip), 0, 0, 1, 1}, {&__pyx_n_s_checkcache, __pyx_k_checkcache, sizeof(__pyx_k_checkcache), 0, 0, 1, 1}, {&__pyx_n_s_clear, __pyx_k_clear, sizeof(__pyx_k_clear), 0, 0, 1, 1}, + {&__pyx_n_s_clear_run_state, __pyx_k_clear_run_state, sizeof(__pyx_k_clear_run_state), 0, 0, 1, 1}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_s_cls_name, __pyx_k_cls_name, sizeof(__pyx_k_cls_name), 0, 0, 1, 1}, {&__pyx_n_s_cmd_step_into, __pyx_k_cmd_step_into, sizeof(__pyx_k_cmd_step_into), 0, 0, 1, 1}, @@ -26477,6 +26806,7 @@ {&__pyx_n_s_is_filter_enabled, __pyx_k_is_filter_enabled, sizeof(__pyx_k_is_filter_enabled), 0, 0, 1, 1}, {&__pyx_n_s_is_filter_libraries, __pyx_k_is_filter_libraries, sizeof(__pyx_k_is_filter_libraries), 0, 0, 1, 1}, {&__pyx_n_s_is_ignored_by_filters, __pyx_k_is_ignored_by_filters, sizeof(__pyx_k_is_ignored_by_filters), 0, 0, 1, 1}, + {&__pyx_n_s_is_real_file, __pyx_k_is_real_file, sizeof(__pyx_k_is_real_file), 0, 0, 1, 1}, {&__pyx_n_s_is_thread_alive, __pyx_k_is_thread_alive, sizeof(__pyx_k_is_thread_alive), 0, 0, 1, 1}, {&__pyx_n_s_java_lang, __pyx_k_java_lang, sizeof(__pyx_k_java_lang), 0, 0, 1, 1}, {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1}, @@ -26519,6 +26849,9 @@ {&__pyx_n_s_pydev_imps__pydev_saved_modules, __pyx_k_pydev_imps__pydev_saved_modules, sizeof(__pyx_k_pydev_imps__pydev_saved_modules), 0, 0, 1, 1}, {&__pyx_n_s_pydev_log, __pyx_k_pydev_log, sizeof(__pyx_k_pydev_log), 0, 0, 1, 1}, {&__pyx_n_s_pydev_message, __pyx_k_pydev_message, sizeof(__pyx_k_pydev_message), 0, 0, 1, 1}, + {&__pyx_n_s_pydev_state, __pyx_k_pydev_state, sizeof(__pyx_k_pydev_state), 0, 0, 1, 1}, + {&__pyx_n_s_pydev_step_cmd, __pyx_k_pydev_step_cmd, sizeof(__pyx_k_pydev_step_cmd), 0, 0, 1, 1}, + {&__pyx_n_s_pydev_step_stop, __pyx_k_pydev_step_stop, sizeof(__pyx_k_pydev_step_stop), 0, 0, 1, 1}, {&__pyx_n_s_pydevd_bundle, __pyx_k_pydevd_bundle, sizeof(__pyx_k_pydevd_bundle), 0, 0, 1, 1}, {&__pyx_n_s_pydevd_bundle_pydevd_additional, __pyx_k_pydevd_bundle_pydevd_additional, sizeof(__pyx_k_pydevd_bundle_pydevd_additional), 0, 0, 1, 1}, {&__pyx_n_s_pydevd_bundle_pydevd_breakpoint, __pyx_k_pydevd_bundle_pydevd_breakpoint, sizeof(__pyx_k_pydevd_bundle_pydevd_breakpoint), 0, 0, 1, 1}, @@ -26537,6 +26870,7 @@ {&__pyx_kp_s_pydevd_py, __pyx_k_pydevd_py, sizeof(__pyx_k_pydevd_py), 0, 0, 1, 0}, {&__pyx_kp_s_pydevd_traceproperty_py, __pyx_k_pydevd_traceproperty_py, sizeof(__pyx_k_pydevd_traceproperty_py), 0, 0, 1, 0}, {&__pyx_n_s_pydevd_vars, __pyx_k_pydevd_vars, sizeof(__pyx_k_pydevd_vars), 0, 0, 1, 1}, + {&__pyx_kp_s_python_s, __pyx_k_python_s, sizeof(__pyx_k_python_s), 0, 0, 1, 0}, {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, @@ -26620,13 +26954,13 @@ __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(0, 55, __pyx_L1_error) __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 156, __pyx_L1_error) __pyx_builtin_eval = __Pyx_GetBuiltinName(__pyx_n_s_eval); if (!__pyx_builtin_eval) __PYX_ERR(0, 172, __pyx_L1_error) - __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(0, 434, __pyx_L1_error) - __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s_StopIteration); if (!__pyx_builtin_StopIteration) __PYX_ERR(0, 584, __pyx_L1_error) - __pyx_builtin_GeneratorExit = __Pyx_GetBuiltinName(__pyx_n_s_GeneratorExit); if (!__pyx_builtin_GeneratorExit) __PYX_ERR(0, 584, __pyx_L1_error) - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 826, __pyx_L1_error) - __pyx_builtin_KeyboardInterrupt = __Pyx_GetBuiltinName(__pyx_n_s_KeyboardInterrupt); if (!__pyx_builtin_KeyboardInterrupt) __PYX_ERR(0, 880, __pyx_L1_error) - __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 946, __pyx_L1_error) - __pyx_builtin_SystemExit = __Pyx_GetBuiltinName(__pyx_n_s_SystemExit); if (!__pyx_builtin_SystemExit) __PYX_ERR(0, 1089, __pyx_L1_error) + __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(0, 439, __pyx_L1_error) + __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s_StopIteration); if (!__pyx_builtin_StopIteration) __PYX_ERR(0, 594, __pyx_L1_error) + __pyx_builtin_GeneratorExit = __Pyx_GetBuiltinName(__pyx_n_s_GeneratorExit); if (!__pyx_builtin_GeneratorExit) __PYX_ERR(0, 594, __pyx_L1_error) + __pyx_builtin_KeyboardInterrupt = __Pyx_GetBuiltinName(__pyx_n_s_KeyboardInterrupt); if (!__pyx_builtin_KeyboardInterrupt) __PYX_ERR(0, 766, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 838, __pyx_L1_error) + __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 957, __pyx_L1_error) + __pyx_builtin_SystemExit = __Pyx_GetBuiltinName(__pyx_n_s_SystemExit); if (!__pyx_builtin_SystemExit) __PYX_ERR(0, 1100, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -26647,39 +26981,39 @@ __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); - /* "_pydevd_bundle/pydevd_cython.pyx":312 + /* "_pydevd_bundle/pydevd_cython.pyx":313 * info.pydev_message = exception_breakpoint.qname * except: * info.pydev_message = exception_breakpoint.qname.encode('utf-8') # <<<<<<<<<<<<<< * flag = True * else: */ - __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_utf_8); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 312, __pyx_L1_error) + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_utf_8); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); - /* "_pydevd_bundle/pydevd_cython.pyx":323 + /* "_pydevd_bundle/pydevd_cython.pyx":324 * info.pydev_message = exception_breakpoint.qname * except: * info.pydev_message = exception_breakpoint.qname.encode('utf-8') # <<<<<<<<<<<<<< * flag = True * else: */ - __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_utf_8); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 323, __pyx_L1_error) + __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_utf_8); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); - /* "_pydevd_bundle/pydevd_cython.pyx":480 + /* "_pydevd_bundle/pydevd_cython.pyx":485 * def manage_return_values(self, main_debugger, frame, event, arg): * * def get_func_name(frame): # <<<<<<<<<<<<<< * code_obj = frame.f_code * func_name = code_obj.co_name */ - __pyx_tuple__5 = PyTuple_Pack(4, __pyx_n_s_frame, __pyx_n_s_code_obj, __pyx_n_s_func_name, __pyx_n_s_cls_name); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 480, __pyx_L1_error) + __pyx_tuple__5 = PyTuple_Pack(4, __pyx_n_s_frame, __pyx_n_s_code_obj, __pyx_n_s_func_name, __pyx_n_s_cls_name); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 485, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); - __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_get_func_name, 480, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 480, __pyx_L1_error) + __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_get_func_name, 485, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 485, __pyx_L1_error) /* "_pydevd_bundle/pydevd_cython.pyx":9 * from _pydev_bundle import pydev_log @@ -26815,29 +27149,29 @@ __Pyx_GIVEREF(__pyx_tuple__22); __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_handle_breakpoint_expression, 203, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(0, 203, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":937 + /* "_pydevd_bundle/pydevd_cython.pyx":948 * * * def trace_dispatch(py_db, frame, event, arg): # <<<<<<<<<<<<<< * t = threadingCurrentThread() * */ - __pyx_tuple__24 = PyTuple_Pack(7, __pyx_n_s_py_db, __pyx_n_s_frame, __pyx_n_s_event, __pyx_n_s_arg, __pyx_n_s_t, __pyx_n_s_additional_info, __pyx_n_s_thread_tracer); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 937, __pyx_L1_error) + __pyx_tuple__24 = PyTuple_Pack(7, __pyx_n_s_py_db, __pyx_n_s_frame, __pyx_n_s_event, __pyx_n_s_arg, __pyx_n_s_t, __pyx_n_s_additional_info, __pyx_n_s_thread_tracer); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 948, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24); - __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__24, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_trace_dispatch, 937, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__25)) __PYX_ERR(0, 937, __pyx_L1_error) + __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(4, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__24, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_trace_dispatch, 948, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__25)) __PYX_ERR(0, 948, __pyx_L1_error) - /* "_pydevd_bundle/pydevd_cython.pyx":1120 + /* "_pydevd_bundle/pydevd_cython.pyx":1131 * * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< * _tid_to_last_frame[self._args[1].ident] = frame * return _original_call(self, frame, event, arg) */ - __pyx_tuple__26 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_frame, __pyx_n_s_event, __pyx_n_s_arg); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 1120, __pyx_L1_error) + __pyx_tuple__26 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_frame, __pyx_n_s_event, __pyx_n_s_arg); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 1131, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26); - __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_call_2, 1120, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(0, 1120, __pyx_L1_error) + __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_bundle_pydevd_cython_pyx, __pyx_n_s_call_2, 1131, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(0, 1131, __pyx_L1_error) /* "(tree fragment)":1 * def __pyx_unpickle_PyDBAdditionalThreadInfo(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< @@ -26868,10 +27202,11 @@ } static int __Pyx_InitGlobals(void) { + __pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type; if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_12 = PyInt_FromLong(12); if (unlikely(!__pyx_int_12)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_int_15 = PyInt_FromLong(15); if (unlikely(!__pyx_int_15)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_32 = PyInt_FromLong(32); if (unlikely(!__pyx_int_32)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_64458794 = PyInt_FromLong(64458794L); if (unlikely(!__pyx_int_64458794)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_125568891 = PyInt_FromLong(125568891L); if (unlikely(!__pyx_int_125568891)) __PYX_ERR(0, 1, __pyx_L1_error) @@ -26883,12 +27218,159 @@ return -1; } +static int __Pyx_modinit_global_init_code(void); /*proto*/ +static int __Pyx_modinit_variable_export_code(void); /*proto*/ +static int __Pyx_modinit_function_export_code(void); /*proto*/ +static int __Pyx_modinit_type_init_code(void); /*proto*/ +static int __Pyx_modinit_type_import_code(void); /*proto*/ +static int __Pyx_modinit_variable_import_code(void); /*proto*/ +static int __Pyx_modinit_function_import_code(void); /*proto*/ + +static int __Pyx_modinit_global_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo) < 0) __PYX_ERR(0, 63, __pyx_L1_error) + __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo.tp_print = 0; + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttrString(__pyx_m, "PyDBAdditionalThreadInfo", (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo) < 0) __PYX_ERR(0, 63, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo) < 0) __PYX_ERR(0, 63, __pyx_L1_error) + __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo = &__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo; + __pyx_vtabptr_14_pydevd_bundle_13pydevd_cython_PyDBFrame = &__pyx_vtable_14_pydevd_bundle_13pydevd_cython_PyDBFrame; + __pyx_vtable_14_pydevd_bundle_13pydevd_cython_PyDBFrame.trace_dispatch = (PyObject *(*)(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *, PyObject *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispatch; + if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 218, __pyx_L1_error) + __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_print = 0; + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_dict, __pyx_vtabptr_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 218, __pyx_L1_error) + if (PyObject_SetAttrString(__pyx_m, "PyDBFrame", (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 218, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 218, __pyx_L1_error) + __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame = &__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame; + if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 971, __pyx_L1_error) + __pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_print = 0; + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttrString(__pyx_m, "SafeCallWrapper", (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 971, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 971, __pyx_L1_error) + __pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper = &__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper; + if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 983, __pyx_L1_error) + __pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer.tp_print = 0; + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer.tp_dictoffset && __pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + #if CYTHON_COMPILING_IN_CPYTHON + { + PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(0, 983, __pyx_L1_error) + if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { + __pyx_wrapperbase_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__call__ = *((PyWrapperDescrObject *)wrapper)->d_base; + __pyx_wrapperbase_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__call__.doc = __pyx_doc_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__call__; + ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__call__; + } + } + #endif + if (PyObject_SetAttrString(__pyx_m, "ThreadTracer", (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 983, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 983, __pyx_L1_error) + __pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer = &__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer; + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyTypeObject), + #else + sizeof(PyHeapTypeObject), + #endif + 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_variable_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); + /*--- Variable import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#if PY_MAJOR_VERSION < 3 +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC void +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif +#else +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC PyObject * +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif +#endif +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (!(defined(__cplusplus)) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))) + #define CYTHON_SMALL_CODE __attribute__((cold)) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + + #if PY_MAJOR_VERSION < 3 -PyMODINIT_FUNC initpydevd_cython(void); /*proto*/ -PyMODINIT_FUNC initpydevd_cython(void) +__Pyx_PyMODINIT_FUNC initpydevd_cython(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initpydevd_cython(void) #else -PyMODINIT_FUNC PyInit_pydevd_cython(void); /*proto*/ -PyMODINIT_FUNC PyInit_pydevd_cython(void) +__Pyx_PyMODINIT_FUNC PyInit_pydevd_cython(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_pydevd_cython(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); @@ -26939,24 +27421,26 @@ PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; - int __pyx_t_8; + PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; + int __pyx_t_10; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m && __pyx_m == __pyx_pyinit_module) return 0; + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); #endif #if CYTHON_REFNANNY - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); - if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); - } - #endif - __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_pydevd_cython(void)", 0); +__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); +if (!__Pyx_RefNanny) { + PyErr_Clear(); + __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); + if (!__Pyx_RefNanny) + Py_FatalError("failed to import 'refnanny' module"); +} +#endif + __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_pydevd_cython(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) @@ -27026,53 +27510,14 @@ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global init code ---*/ - /*--- Variable export code ---*/ - /*--- Function export code ---*/ - /*--- Type init code ---*/ - if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo) < 0) __PYX_ERR(0, 63, __pyx_L1_error) - __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo.tp_print = 0; - if (PyObject_SetAttrString(__pyx_m, "PyDBAdditionalThreadInfo", (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo) < 0) __PYX_ERR(0, 63, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo) < 0) __PYX_ERR(0, 63, __pyx_L1_error) - __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo = &__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBAdditionalThreadInfo; - __pyx_vtabptr_14_pydevd_bundle_13pydevd_cython_PyDBFrame = &__pyx_vtable_14_pydevd_bundle_13pydevd_cython_PyDBFrame; - __pyx_vtable_14_pydevd_bundle_13pydevd_cython_PyDBFrame.trace_dispatch = (PyObject *(*)(struct __pyx_obj_14_pydevd_bundle_13pydevd_cython_PyDBFrame *, PyObject *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_14_pydevd_bundle_13pydevd_cython_9PyDBFrame_trace_dispatch; - if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 218, __pyx_L1_error) - __pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_print = 0; - if (__Pyx_SetVtable(__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame.tp_dict, __pyx_vtabptr_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 218, __pyx_L1_error) - if (PyObject_SetAttrString(__pyx_m, "PyDBFrame", (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 218, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame) < 0) __PYX_ERR(0, 218, __pyx_L1_error) - __pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame = &__pyx_type_14_pydevd_bundle_13pydevd_cython_PyDBFrame; - if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 960, __pyx_L1_error) - __pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper.tp_print = 0; - if (PyObject_SetAttrString(__pyx_m, "SafeCallWrapper", (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 960, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper) < 0) __PYX_ERR(0, 960, __pyx_L1_error) - __pyx_ptype_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper = &__pyx_type_14_pydevd_bundle_13pydevd_cython_SafeCallWrapper; - if (PyType_Ready(&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 972, __pyx_L1_error) - __pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer.tp_print = 0; - #if CYTHON_COMPILING_IN_CPYTHON - { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(0, 972, __pyx_L1_error) - if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { - __pyx_wrapperbase_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__call__ = *((PyWrapperDescrObject *)wrapper)->d_base; - __pyx_wrapperbase_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__call__.doc = __pyx_doc_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__call__; - ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_14_pydevd_bundle_13pydevd_cython_12ThreadTracer_2__call__; - } - } - #endif - if (PyObject_SetAttrString(__pyx_m, "ThreadTracer", (PyObject *)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 972, __pyx_L1_error) - if (__Pyx_setup_reduce((PyObject*)&__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer) < 0) __PYX_ERR(0, 972, __pyx_L1_error) - __pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer = &__pyx_type_14_pydevd_bundle_13pydevd_cython_ThreadTracer; - /*--- Type import code ---*/ - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", - #if CYTHON_COMPILING_IN_PYPY - sizeof(PyTypeObject), - #else - sizeof(PyHeapTypeObject), - #endif - 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) __PYX_ERR(2, 9, __pyx_L1_error) - /*--- Variable import code ---*/ - /*--- Function import code ---*/ + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; + if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) @@ -27173,14 +27618,14 @@ /* "_pydevd_bundle/pydevd_cython.pyx":14 * # ENDIF * - * version = 12 # <<<<<<<<<<<<<< + * version = 15 # <<<<<<<<<<<<<< * * if not hasattr(sys, '_current_frames'): */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_version, __pyx_int_12) < 0) __PYX_ERR(0, 14, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_version, __pyx_int_15) < 0) __PYX_ERR(0, 14, __pyx_L1_error) /* "_pydevd_bundle/pydevd_cython.pyx":16 - * version = 12 + * version = 15 * * if not hasattr(sys, '_current_frames'): # <<<<<<<<<<<<<< * @@ -27305,16 +27750,19 @@ * cachedThreadState = ThreadStateMapping.getDeclaredField('cachedThreadState') # Release Jython 2.7.0 * cachedThreadState.accessible = True */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_NoSuchFieldException); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L6_except_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_8) { + __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_2, &__pyx_t_8); + __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_NoSuchFieldException); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 24, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_8); + __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_8 = 0; + if (__pyx_t_10) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_9) < 0) __PYX_ERR(0, 24, __pyx_L6_except_error) - __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(0, 24, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_2); - __Pyx_GOTREF(__pyx_t_9); + __Pyx_GOTREF(__pyx_t_1); /* "_pydevd_bundle/pydevd_cython.pyx":25 * cachedThreadState = ThreadStateMapping.getDeclaredField('globalThreadStates') # Dev version @@ -27323,19 +27771,19 @@ * cachedThreadState.accessible = True * thread_states = cachedThreadState.get(ThreadStateMapping) */ - __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_ThreadStateMapping); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 25, __pyx_L6_except_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_getDeclaredField); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 25, __pyx_L6_except_error) + __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_ThreadStateMapping); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 25, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_getDeclaredField); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 25, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 25, __pyx_L6_except_error) - __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 25, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_cachedThreadState, __pyx_t_10) < 0) __PYX_ERR(0, 25, __pyx_L6_except_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_cachedThreadState, __pyx_t_9) < 0) __PYX_ERR(0, 25, __pyx_L6_except_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L5_exception_handled; } goto __pyx_L6_except_error; @@ -27368,10 +27816,10 @@ * thread_states = cachedThreadState.get(ThreadStateMapping) * */ - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_cachedThreadState); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 26, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_PyObject_SetAttrStr(__pyx_t_9, __pyx_n_s_accessible, Py_True) < 0) __PYX_ERR(0, 26, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cachedThreadState); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_accessible, Py_True) < 0) __PYX_ERR(0, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":27 * cachedThreadState = ThreadStateMapping.getDeclaredField('cachedThreadState') # Release Jython 2.7.0 @@ -27380,61 +27828,19 @@ * * def _current_frames(): */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cachedThreadState); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cachedThreadState); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_ThreadStateMapping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_ThreadStateMapping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_10 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_10)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - } - } - if (!__pyx_t_10) { - __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 27, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GOTREF(__pyx_t_9); - } else { - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 27, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } else - #endif - #if CYTHON_FAST_PYCCALL - if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { - PyObject *__pyx_temp[2] = {__pyx_t_10, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-1, 1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 27, __pyx_L1_error) - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } else - #endif - { - __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 27, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10); __pyx_t_10 = NULL; - __Pyx_GIVEREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_2); - __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_11, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 27, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - } - } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_thread_states, __pyx_t_9) < 0) __PYX_ERR(0, 27, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_thread_states, __pyx_t_8) < 0) __PYX_ERR(0, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":29 * thread_states = cachedThreadState.get(ThreadStateMapping) @@ -27443,10 +27849,10 @@ * as_array = thread_states.entrySet().toArray() * ret = {} */ - __pyx_t_9 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_1_current_frames, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 29, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_current_frames, __pyx_t_9) < 0) __PYX_ERR(0, 29, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_1_current_frames, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_current_frames, __pyx_t_8) < 0) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":19 * @@ -27465,11 +27871,11 @@ * _tid_to_last_frame = {} * */ - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_IS_IRONPYTHON); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__pyx_t_4) { + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_IS_IRONPYTHON); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 47, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (likely(__pyx_t_4)) { /* "_pydevd_bundle/pydevd_cython.pyx":48 * @@ -27478,10 +27884,10 @@ * * # IronPython doesn't have it. Let's use our workaround... */ - __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 48, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_tid_to_last_frame, __pyx_t_9) < 0) __PYX_ERR(0, 48, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_tid_to_last_frame, __pyx_t_8) < 0) __PYX_ERR(0, 48, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":51 * @@ -27490,10 +27896,10 @@ * return _tid_to_last_frame * */ - __pyx_t_9 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_3_current_frames, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 51, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_current_frames, __pyx_t_9) < 0) __PYX_ERR(0, 51, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_3_current_frames, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_current_frames, __pyx_t_8) < 0) __PYX_ERR(0, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":47 * return ret @@ -27513,16 +27919,16 @@ * _current_frames = sys._current_frames */ /*else*/ { - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 55, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_Raise(__pyx_t_9, 0, 0, 0); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(0, 55, __pyx_L1_error) } __pyx_L3:; /* "_pydevd_bundle/pydevd_cython.pyx":16 - * version = 12 + * version = 15 * * if not hasattr(sys, '_current_frames'): # <<<<<<<<<<<<<< * @@ -27539,11 +27945,11 @@ * #======================================================================================================================= */ /*else*/ { - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_sys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 57, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_current_frames); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_sys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_current_frames); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_current_frames, __pyx_t_1) < 0) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } @@ -27621,14 +28027,14 @@ __Pyx_INCREF(__pyx_n_s_pydev_log); __Pyx_GIVEREF(__pyx_n_s_pydev_log); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_pydev_log); - __pyx_t_9 = __Pyx_Import(__pyx_n_s_pydev_bundle, __pyx_t_1, -1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 136, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydev_bundle, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_pydev_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_pydev_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pydev_log, __pyx_t_1) < 0) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":137 * @@ -27637,18 +28043,18 @@ * from _pydevd_bundle import pydevd_vars * from _pydevd_bundle.pydevd_breakpoints import get_exception_breakpoint */ - __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_pydevd_dont_trace); __Pyx_GIVEREF(__pyx_n_s_pydevd_dont_trace); - PyList_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_pydevd_dont_trace); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle, __pyx_t_9, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error) + PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_pydevd_dont_trace); + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pydevd_dont_trace, __pyx_t_9) < 0) __PYX_ERR(0, 137, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_pydevd_dont_trace); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pydevd_dont_trace, __pyx_t_8) < 0) __PYX_ERR(0, 137, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":138 @@ -27663,14 +28069,14 @@ __Pyx_INCREF(__pyx_n_s_pydevd_vars); __Pyx_GIVEREF(__pyx_n_s_pydevd_vars); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_pydevd_vars); - __pyx_t_9 = __Pyx_Import(__pyx_n_s_pydevd_bundle, __pyx_t_1, -1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_pydevd_vars); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pydevd_vars, __pyx_t_1) < 0) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":139 * from _pydevd_bundle import pydevd_dont_trace @@ -27679,18 +28085,18 @@ * from _pydevd_bundle.pydevd_comm import CMD_STEP_CAUGHT_EXCEPTION, CMD_STEP_RETURN, CMD_STEP_OVER, CMD_SET_BREAK, \ * CMD_STEP_INTO, CMD_SMART_STEP_INTO, CMD_RUN_TO_LINE, CMD_SET_NEXT_STATEMENT, CMD_STEP_INTO_MY_CODE */ - __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_get_exception_breakpoint); __Pyx_GIVEREF(__pyx_n_s_get_exception_breakpoint); - PyList_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_get_exception_breakpoint); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_breakpoint, __pyx_t_9, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error) + PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_get_exception_breakpoint); + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_breakpoint, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_get_exception_breakpoint); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_exception_breakpoint, __pyx_t_9) < 0) __PYX_ERR(0, 139, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_get_exception_breakpoint); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_exception_breakpoint, __pyx_t_8) < 0) __PYX_ERR(0, 139, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":140 @@ -27729,46 +28135,46 @@ __Pyx_INCREF(__pyx_n_s_CMD_STEP_INTO_MY_CODE); __Pyx_GIVEREF(__pyx_n_s_CMD_STEP_INTO_MY_CODE); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_s_CMD_STEP_INTO_MY_CODE); - __pyx_t_9 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_comm, __pyx_t_1, -1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 140, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_comm, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_CAUGHT_EXCEPTION, __pyx_t_1) < 0) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_CMD_STEP_RETURN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CMD_STEP_RETURN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_RETURN, __pyx_t_1) < 0) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CMD_STEP_OVER); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_OVER, __pyx_t_1) < 0) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_CMD_SET_BREAK); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CMD_SET_BREAK); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_SET_BREAK, __pyx_t_1) < 0) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_CMD_STEP_INTO); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CMD_STEP_INTO); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_INTO, __pyx_t_1) < 0) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_CMD_SMART_STEP_INTO); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CMD_SMART_STEP_INTO); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_SMART_STEP_INTO, __pyx_t_1) < 0) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_CMD_RUN_TO_LINE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CMD_RUN_TO_LINE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_RUN_TO_LINE, __pyx_t_1) < 0) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_CMD_SET_NEXT_STATEMENT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CMD_SET_NEXT_STATEMENT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_SET_NEXT_STATEMENT, __pyx_t_1) < 0) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_CMD_STEP_INTO_MY_CODE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CMD_STEP_INTO_MY_CODE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMD_STEP_INTO_MY_CODE, __pyx_t_1) < 0) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":142 * from _pydevd_bundle.pydevd_comm import CMD_STEP_CAUGHT_EXCEPTION, CMD_STEP_RETURN, CMD_STEP_OVER, CMD_SET_BREAK, \ @@ -27777,60 +28183,60 @@ * dict_keys, RETURN_VALUES_DICT * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE, PYDEV_FILE */ - __pyx_t_9 = PyList_New(7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyList_New(7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_STATE_SUSPEND); __Pyx_GIVEREF(__pyx_n_s_STATE_SUSPEND); - PyList_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_STATE_SUSPEND); + PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_STATE_SUSPEND); __Pyx_INCREF(__pyx_n_s_get_thread_id); __Pyx_GIVEREF(__pyx_n_s_get_thread_id); - PyList_SET_ITEM(__pyx_t_9, 1, __pyx_n_s_get_thread_id); + PyList_SET_ITEM(__pyx_t_8, 1, __pyx_n_s_get_thread_id); __Pyx_INCREF(__pyx_n_s_STATE_RUN); __Pyx_GIVEREF(__pyx_n_s_STATE_RUN); - PyList_SET_ITEM(__pyx_t_9, 2, __pyx_n_s_STATE_RUN); + PyList_SET_ITEM(__pyx_t_8, 2, __pyx_n_s_STATE_RUN); __Pyx_INCREF(__pyx_n_s_dict_iter_values); __Pyx_GIVEREF(__pyx_n_s_dict_iter_values); - PyList_SET_ITEM(__pyx_t_9, 3, __pyx_n_s_dict_iter_values); + PyList_SET_ITEM(__pyx_t_8, 3, __pyx_n_s_dict_iter_values); __Pyx_INCREF(__pyx_n_s_IS_PY3K); __Pyx_GIVEREF(__pyx_n_s_IS_PY3K); - PyList_SET_ITEM(__pyx_t_9, 4, __pyx_n_s_IS_PY3K); + PyList_SET_ITEM(__pyx_t_8, 4, __pyx_n_s_IS_PY3K); __Pyx_INCREF(__pyx_n_s_dict_keys); __Pyx_GIVEREF(__pyx_n_s_dict_keys); - PyList_SET_ITEM(__pyx_t_9, 5, __pyx_n_s_dict_keys); + PyList_SET_ITEM(__pyx_t_8, 5, __pyx_n_s_dict_keys); __Pyx_INCREF(__pyx_n_s_RETURN_VALUES_DICT); __Pyx_GIVEREF(__pyx_n_s_RETURN_VALUES_DICT); - PyList_SET_ITEM(__pyx_t_9, 6, __pyx_n_s_RETURN_VALUES_DICT); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_constants, __pyx_t_9, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 142, __pyx_L1_error) + PyList_SET_ITEM(__pyx_t_8, 6, __pyx_n_s_RETURN_VALUES_DICT); + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_constants, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STATE_SUSPEND, __pyx_t_9) < 0) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_get_thread_id); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_thread_id, __pyx_t_9) < 0) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_STATE_RUN); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STATE_RUN, __pyx_t_9) < 0) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_dict_iter_values); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_dict_iter_values, __pyx_t_9) < 0) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_IS_PY3K); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_PY3K, __pyx_t_9) < 0) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_dict_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_dict_keys, __pyx_t_9) < 0) __PYX_ERR(0, 143, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_RETURN_VALUES_DICT, __pyx_t_9) < 0) __PYX_ERR(0, 143, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_STATE_SUSPEND); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STATE_SUSPEND, __pyx_t_8) < 0) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_get_thread_id); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_thread_id, __pyx_t_8) < 0) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_STATE_RUN); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STATE_RUN, __pyx_t_8) < 0) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_dict_iter_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_dict_iter_values, __pyx_t_8) < 0) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_IS_PY3K); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_PY3K, __pyx_t_8) < 0) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_dict_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_dict_keys, __pyx_t_8) < 0) __PYX_ERR(0, 143, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_RETURN_VALUES_DICT); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RETURN_VALUES_DICT, __pyx_t_8) < 0) __PYX_ERR(0, 143, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":144 @@ -27848,59 +28254,59 @@ __Pyx_INCREF(__pyx_n_s_PYDEV_FILE); __Pyx_GIVEREF(__pyx_n_s_PYDEV_FILE); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_PYDEV_FILE); - __pyx_t_9 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_dont_trace, __pyx_t_1, -1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_dont_trace, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_DONT_TRACE, __pyx_t_1) < 0) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_PYDEV_FILE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_PYDEV_FILE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_PYDEV_FILE, __pyx_t_1) < 0) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":145 * dict_keys, RETURN_VALUES_DICT * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE, PYDEV_FILE * from _pydevd_bundle.pydevd_frame_utils import add_exception_to_frame, just_raised, remove_exception_from_frame # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_utils import get_clsname_for_code - * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame + * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file */ - __pyx_t_9 = PyList_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 145, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyList_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_add_exception_to_frame); __Pyx_GIVEREF(__pyx_n_s_add_exception_to_frame); - PyList_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_add_exception_to_frame); + PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_add_exception_to_frame); __Pyx_INCREF(__pyx_n_s_just_raised); __Pyx_GIVEREF(__pyx_n_s_just_raised); - PyList_SET_ITEM(__pyx_t_9, 1, __pyx_n_s_just_raised); + PyList_SET_ITEM(__pyx_t_8, 1, __pyx_n_s_just_raised); __Pyx_INCREF(__pyx_n_s_remove_exception_from_frame); __Pyx_GIVEREF(__pyx_n_s_remove_exception_from_frame); - PyList_SET_ITEM(__pyx_t_9, 2, __pyx_n_s_remove_exception_from_frame); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_frame_util, __pyx_t_9, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 145, __pyx_L1_error) + PyList_SET_ITEM(__pyx_t_8, 2, __pyx_n_s_remove_exception_from_frame); + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_frame_util, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 145, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_add_exception_to_frame, __pyx_t_9) < 0) __PYX_ERR(0, 145, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_just_raised); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 145, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_just_raised, __pyx_t_9) < 0) __PYX_ERR(0, 145, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 145, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_remove_exception_from_frame, __pyx_t_9) < 0) __PYX_ERR(0, 145, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_add_exception_to_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_add_exception_to_frame, __pyx_t_8) < 0) __PYX_ERR(0, 145, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_just_raised); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_just_raised, __pyx_t_8) < 0) __PYX_ERR(0, 145, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_remove_exception_from_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_remove_exception_from_frame, __pyx_t_8) < 0) __PYX_ERR(0, 145, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":146 * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE, PYDEV_FILE * from _pydevd_bundle.pydevd_frame_utils import add_exception_to_frame, just_raised, remove_exception_from_frame * from _pydevd_bundle.pydevd_utils import get_clsname_for_code # <<<<<<<<<<<<<< - * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame + * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file * */ __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L1_error) @@ -27908,38 +28314,45 @@ __Pyx_INCREF(__pyx_n_s_get_clsname_for_code); __Pyx_GIVEREF(__pyx_n_s_get_clsname_for_code); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_get_clsname_for_code); - __pyx_t_9 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_utils, __pyx_t_1, -1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_utils, __pyx_t_1, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L1_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_get_clsname_for_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_clsname_for_code, __pyx_t_1) < 0) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":147 * from _pydevd_bundle.pydevd_frame_utils import add_exception_to_frame, just_raised, remove_exception_from_frame * from _pydevd_bundle.pydevd_utils import get_clsname_for_code - * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame # <<<<<<<<<<<<<< + * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file # <<<<<<<<<<<<<< * * try: */ - __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_get_abs_path_real_path_and_base); __Pyx_GIVEREF(__pyx_n_s_get_abs_path_real_path_and_base); - PyList_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_get_abs_path_real_path_and_base); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_file_utils, __pyx_t_9, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) + PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_get_abs_path_real_path_and_base); + __Pyx_INCREF(__pyx_n_s_is_real_file); + __Pyx_GIVEREF(__pyx_n_s_is_real_file); + PyList_SET_ITEM(__pyx_t_8, 1, __pyx_n_s_is_real_file); + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_file_utils, __pyx_t_8, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_abs_path_real_path_and_base, __pyx_t_9) < 0) __PYX_ERR(0, 147, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_abs_path_real_path_and_base, __pyx_t_8) < 0) __PYX_ERR(0, 147, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_is_real_file); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_real_file, __pyx_t_8) < 0) __PYX_ERR(0, 147, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":149 - * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame + * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file * * try: # <<<<<<<<<<<<<< * from inspect import CO_GENERATOR @@ -27966,17 +28379,17 @@ __Pyx_INCREF(__pyx_n_s_CO_GENERATOR); __Pyx_GIVEREF(__pyx_n_s_CO_GENERATOR); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_CO_GENERATOR); - __pyx_t_9 = __Pyx_patch_inspect(__Pyx_Import(__pyx_n_s_inspect, __pyx_t_1, -1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 150, __pyx_L12_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = __Pyx_patch_inspect(__Pyx_Import(__pyx_n_s_inspect, __pyx_t_1, -1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 150, __pyx_L12_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_CO_GENERATOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L12_error) + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_CO_GENERATOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_CO_GENERATOR, __pyx_t_1) < 0) __PYX_ERR(0, 150, __pyx_L12_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":149 - * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame + * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file * * try: # <<<<<<<<<<<<<< * from inspect import CO_GENERATOR @@ -27988,11 +28401,11 @@ __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L17_try_end; __pyx_L12_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":151 * try: @@ -28003,10 +28416,10 @@ */ /*except:*/ { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_1, &__pyx_t_11) < 0) __PYX_ERR(0, 151, __pyx_L14_except_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 151, __pyx_L14_except_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_t_11); + __Pyx_GOTREF(__pyx_t_2); /* "_pydevd_bundle/pydevd_cython.pyx":152 * from inspect import CO_GENERATOR @@ -28016,15 +28429,15 @@ * try: */ if (PyDict_SetItem(__pyx_d, __pyx_n_s_CO_GENERATOR, __pyx_int_0) < 0) __PYX_ERR(0, 152, __pyx_L14_except_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L13_exception_handled; } __pyx_L14_except_error:; /* "_pydevd_bundle/pydevd_cython.pyx":149 - * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame + * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file * * try: # <<<<<<<<<<<<<< * from inspect import CO_GENERATOR @@ -28066,25 +28479,25 @@ * except ImportError: * def send_signature_call_trace(*args, **kwargs): */ - __pyx_t_11 = PyList_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 155, __pyx_L20_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L20_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_send_signature_call_trace); __Pyx_GIVEREF(__pyx_n_s_send_signature_call_trace); - PyList_SET_ITEM(__pyx_t_11, 0, __pyx_n_s_send_signature_call_trace); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_send_signature_call_trace); __Pyx_INCREF(__pyx_n_s_send_signature_return_trace); __Pyx_GIVEREF(__pyx_n_s_send_signature_return_trace); - PyList_SET_ITEM(__pyx_t_11, 1, __pyx_n_s_send_signature_return_trace); - __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_signature, __pyx_t_11, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L20_error) + PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_send_signature_return_trace); + __pyx_t_1 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_signature, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L20_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_send_signature_call_trace); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 155, __pyx_L20_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_call_trace, __pyx_t_11) < 0) __PYX_ERR(0, 155, __pyx_L20_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_send_signature_return_trace); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 155, __pyx_L20_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_return_trace, __pyx_t_11) < 0) __PYX_ERR(0, 155, __pyx_L20_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_send_signature_call_trace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L20_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_call_trace, __pyx_t_2) < 0) __PYX_ERR(0, 155, __pyx_L20_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_send_signature_return_trace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L20_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_return_trace, __pyx_t_2) < 0) __PYX_ERR(0, 155, __pyx_L20_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":154 @@ -28100,10 +28513,10 @@ __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L25_try_end; __pyx_L20_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":156 @@ -28113,13 +28526,13 @@ * def send_signature_call_trace(*args, **kwargs): * pass */ - __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); - if (__pyx_t_8) { + __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); + if (__pyx_t_10) { __Pyx_AddTraceback("_pydevd_bundle.pydevd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_11, &__pyx_t_9) < 0) __PYX_ERR(0, 156, __pyx_L22_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_8) < 0) __PYX_ERR(0, 156, __pyx_L22_except_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_t_11); - __Pyx_GOTREF(__pyx_t_9); + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_t_8); /* "_pydevd_bundle/pydevd_cython.pyx":157 * from _pydevd_bundle.pydevd_signature import send_signature_call_trace, send_signature_return_trace @@ -28128,13 +28541,13 @@ * pass * */ - __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_5send_signature_call_trace, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L22_except_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_call_trace, __pyx_t_2) < 0) __PYX_ERR(0, 157, __pyx_L22_except_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_9 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_5send_signature_call_trace, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 157, __pyx_L22_except_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_send_signature_call_trace, __pyx_t_9) < 0) __PYX_ERR(0, 157, __pyx_L22_except_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L21_exception_handled; } goto __pyx_L22_except_error; @@ -28167,16 +28580,16 @@ * * IGNORE_EXCEPTION_TAG = re.compile('[^#]*#.*@IgnoreException') */ - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_path); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_basename); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_basename, __pyx_t_9) < 0) __PYX_ERR(0, 160, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_basename); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_basename, __pyx_t_8) < 0) __PYX_ERR(0, 160, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":162 * basename = os.path.basename @@ -28185,16 +28598,16 @@ * DEBUG_START = ('pydevd.py', 'run') * DEBUG_START_PY3K = ('_pydev_execfile.py', 'execfile') */ - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_re); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_compile); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_IGNORE_EXCEPTION_TAG, __pyx_t_9) < 0) __PYX_ERR(0, 162, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_re); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_compile); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_IGNORE_EXCEPTION_TAG, __pyx_t_8) < 0) __PYX_ERR(0, 162, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":163 * @@ -28230,13 +28643,13 @@ * * */ - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_get); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_file_type, __pyx_t_11) < 0) __PYX_ERR(0, 166, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_file_type, __pyx_t_2) < 0) __PYX_ERR(0, 166, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":169 * @@ -28245,10 +28658,10 @@ * condition = breakpoint.condition * try: */ - __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_7handle_breakpoint_condition, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_breakpoint_condition, __pyx_t_11) < 0) __PYX_ERR(0, 169, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_7handle_breakpoint_condition, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_breakpoint_condition, __pyx_t_2) < 0) __PYX_ERR(0, 169, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":203 * @@ -28257,10 +28670,10 @@ * try: * try: */ - __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_9handle_breakpoint_expression, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_breakpoint_expression, __pyx_t_11) < 0) __PYX_ERR(0, 203, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_9handle_breakpoint_expression, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_handle_breakpoint_expression, __pyx_t_2) < 0) __PYX_ERR(0, 203, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":232 * #Same thing in the main debugger but only considering the file contents, while the one in the main debugger @@ -28269,10 +28682,10 @@ * filename_to_stat_info = {} * */ - __pyx_t_11 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame->tp_dict, __pyx_n_s_filename_to_lines_where_exceptio, __pyx_t_11) < 0) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame->tp_dict, __pyx_n_s_filename_to_lines_where_exceptio, __pyx_t_2) < 0) __PYX_ERR(0, 232, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame); /* "_pydevd_bundle/pydevd_cython.pyx":233 @@ -28282,321 +28695,321 @@ * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) */ - __pyx_t_11 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 233, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame->tp_dict, __pyx_n_s_filename_to_stat_info, __pyx_t_11) < 0) __PYX_ERR(0, 233, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame->tp_dict, __pyx_n_s_filename_to_stat_info, __pyx_t_2) < 0) __PYX_ERR(0, 233, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_ptype_14_pydevd_bundle_13pydevd_cython_PyDBFrame); - /* "_pydevd_bundle/pydevd_cython.pyx":900 + /* "_pydevd_bundle/pydevd_cython.pyx":911 * #end trace_dispatch * * import traceback # <<<<<<<<<<<<<< * * from _pydev_bundle.pydev_is_thread_alive import is_thread_alive */ - __pyx_t_11 = __Pyx_Import(__pyx_n_s_traceback, 0, -1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_traceback, __pyx_t_11) < 0) __PYX_ERR(0, 900, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = __Pyx_Import(__pyx_n_s_traceback, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_traceback, __pyx_t_2) < 0) __PYX_ERR(0, 911, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":902 + /* "_pydevd_bundle/pydevd_cython.pyx":913 * import traceback * * from _pydev_bundle.pydev_is_thread_alive import is_thread_alive # <<<<<<<<<<<<<< * from _pydev_imps._pydev_saved_modules import threading * from _pydevd_bundle.pydevd_constants import get_thread_id, IS_IRONPYTHON */ - __pyx_t_11 = PyList_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 902, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_is_thread_alive); __Pyx_GIVEREF(__pyx_n_s_is_thread_alive); - PyList_SET_ITEM(__pyx_t_11, 0, __pyx_n_s_is_thread_alive); - __pyx_t_9 = __Pyx_Import(__pyx_n_s_pydev_bundle_pydev_is_thread_al, __pyx_t_11, -1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 902, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_is_thread_alive); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 902, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_thread_alive, __pyx_t_11) < 0) __PYX_ERR(0, 902, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_is_thread_alive); + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydev_bundle_pydev_is_thread_al, __pyx_t_2, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_is_thread_alive); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_thread_alive, __pyx_t_2) < 0) __PYX_ERR(0, 913, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":903 + /* "_pydevd_bundle/pydevd_cython.pyx":914 * * from _pydev_bundle.pydev_is_thread_alive import is_thread_alive * from _pydev_imps._pydev_saved_modules import threading # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_constants import get_thread_id, IS_IRONPYTHON * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE */ - __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_threading); __Pyx_GIVEREF(__pyx_n_s_threading); - PyList_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_threading); - __pyx_t_11 = __Pyx_Import(__pyx_n_s_pydev_imps__pydev_saved_modules, __pyx_t_9, -1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_11, __pyx_n_s_threading); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_9) < 0) __PYX_ERR(0, 903, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_threading); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_pydev_imps__pydev_saved_modules, __pyx_t_8, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_threading); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_8) < 0) __PYX_ERR(0, 914, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":904 + /* "_pydevd_bundle/pydevd_cython.pyx":915 * from _pydev_bundle.pydev_is_thread_alive import is_thread_alive * from _pydev_imps._pydev_saved_modules import threading * from _pydevd_bundle.pydevd_constants import get_thread_id, IS_IRONPYTHON # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE * from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads */ - __pyx_t_11 = PyList_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 904, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_get_thread_id); __Pyx_GIVEREF(__pyx_n_s_get_thread_id); - PyList_SET_ITEM(__pyx_t_11, 0, __pyx_n_s_get_thread_id); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_get_thread_id); __Pyx_INCREF(__pyx_n_s_IS_IRONPYTHON); __Pyx_GIVEREF(__pyx_n_s_IS_IRONPYTHON); - PyList_SET_ITEM(__pyx_t_11, 1, __pyx_n_s_IS_IRONPYTHON); - __pyx_t_9 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_constants, __pyx_t_11, -1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 904, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_get_thread_id); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 904, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_thread_id, __pyx_t_11) < 0) __PYX_ERR(0, 904, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_IS_IRONPYTHON); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 904, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_IRONPYTHON, __pyx_t_11) < 0) __PYX_ERR(0, 904, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_IS_IRONPYTHON); + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_constants, __pyx_t_2, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_get_thread_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_thread_id, __pyx_t_2) < 0) __PYX_ERR(0, 915, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_IS_IRONPYTHON); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_IS_IRONPYTHON, __pyx_t_2) < 0) __PYX_ERR(0, 915, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":905 + /* "_pydevd_bundle/pydevd_cython.pyx":916 * from _pydev_imps._pydev_saved_modules import threading * from _pydevd_bundle.pydevd_constants import get_thread_id, IS_IRONPYTHON * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, NORM_PATHS_AND_BASE_CONTAINER */ - __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_DONT_TRACE); __Pyx_GIVEREF(__pyx_n_s_DONT_TRACE); - PyList_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_DONT_TRACE); - __pyx_t_11 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_dont_trace, __pyx_t_9, -1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_11, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DONT_TRACE, __pyx_t_9) < 0) __PYX_ERR(0, 905, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_DONT_TRACE); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_dont_trace, __pyx_t_8, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DONT_TRACE, __pyx_t_8) < 0) __PYX_ERR(0, 916, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":906 + /* "_pydevd_bundle/pydevd_cython.pyx":917 * from _pydevd_bundle.pydevd_constants import get_thread_id, IS_IRONPYTHON * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE * from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads # <<<<<<<<<<<<<< * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, NORM_PATHS_AND_BASE_CONTAINER * from _pydevd_bundle.pydevd_tracing import SetTrace */ - __pyx_t_11 = PyList_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 906, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_kill_all_pydev_threads); __Pyx_GIVEREF(__pyx_n_s_kill_all_pydev_threads); - PyList_SET_ITEM(__pyx_t_11, 0, __pyx_n_s_kill_all_pydev_threads); - __pyx_t_9 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_kill_all_p, __pyx_t_11, -1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 906, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_kill_all_pydev_threads); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 906, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_kill_all_pydev_threads, __pyx_t_11) < 0) __PYX_ERR(0, 906, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_kill_all_pydev_threads); + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_kill_all_p, __pyx_t_2, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_kill_all_pydev_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_kill_all_pydev_threads, __pyx_t_2) < 0) __PYX_ERR(0, 917, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":907 + /* "_pydevd_bundle/pydevd_cython.pyx":918 * from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE * from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, NORM_PATHS_AND_BASE_CONTAINER # <<<<<<<<<<<<<< * from _pydevd_bundle.pydevd_tracing import SetTrace * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) */ - __pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 907, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_get_abs_path_real_path_and_base); __Pyx_GIVEREF(__pyx_n_s_get_abs_path_real_path_and_base); - PyList_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_get_abs_path_real_path_and_base); + PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_get_abs_path_real_path_and_base); __Pyx_INCREF(__pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); __Pyx_GIVEREF(__pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); - PyList_SET_ITEM(__pyx_t_9, 1, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); - __pyx_t_11 = __Pyx_Import(__pyx_n_s_pydevd_file_utils, __pyx_t_9, -1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 907, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_11, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 907, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_abs_path_real_path_and_base, __pyx_t_9) < 0) __PYX_ERR(0, 907, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_11, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 907, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER, __pyx_t_9) < 0) __PYX_ERR(0, 907, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + PyList_SET_ITEM(__pyx_t_8, 1, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_pydevd_file_utils, __pyx_t_8, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_abs_path_real_path_and_base, __pyx_t_8) < 0) __PYX_ERR(0, 918, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_NORM_PATHS_AND_BASE_CONTAINER, __pyx_t_8) < 0) __PYX_ERR(0, 918, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":908 + /* "_pydevd_bundle/pydevd_cython.pyx":919 * from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, NORM_PATHS_AND_BASE_CONTAINER * from _pydevd_bundle.pydevd_tracing import SetTrace # <<<<<<<<<<<<<< * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) * # In Cython, PyDBAdditionalThreadInfo is bundled in the file. */ - __pyx_t_11 = PyList_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 908, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_SetTrace); __Pyx_GIVEREF(__pyx_n_s_SetTrace); - PyList_SET_ITEM(__pyx_t_11, 0, __pyx_n_s_SetTrace); - __pyx_t_9 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_tracing, __pyx_t_11, -1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 908, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_SetTrace); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 908, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SetTrace, __pyx_t_11) < 0) __PYX_ERR(0, 908, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_SetTrace); + __pyx_t_8 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_tracing, __pyx_t_2, -1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s_SetTrace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SetTrace, __pyx_t_2) < 0) __PYX_ERR(0, 919, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":919 + /* "_pydevd_bundle/pydevd_cython.pyx":930 * # ENDIF * * threadingCurrentThread = threading.currentThread # <<<<<<<<<<<<<< * get_file_type = DONT_TRACE.get * */ - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_threading); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_currentThread); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_threadingCurrentThread, __pyx_t_11) < 0) __PYX_ERR(0, 919, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_threading); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_currentThread); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_threadingCurrentThread, __pyx_t_2) < 0) __PYX_ERR(0, 930, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":920 + /* "_pydevd_bundle/pydevd_cython.pyx":931 * * threadingCurrentThread = threading.currentThread * get_file_type = DONT_TRACE.get # <<<<<<<<<<<<<< * * # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) */ - __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_get); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_file_type, __pyx_t_9) < 0) __PYX_ERR(0, 920, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_file_type, __pyx_t_8) < 0) __PYX_ERR(0, 931, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":933 + /* "_pydevd_bundle/pydevd_cython.pyx":944 * # - Breakpoints are changed * # It can be used when running regularly (without step over/step in/step return) * global_cache_skips = {} # <<<<<<<<<<<<<< * global_cache_frame_skips = {} * */ - __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 933, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_global_cache_skips, __pyx_t_9) < 0) __PYX_ERR(0, 933, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_global_cache_skips, __pyx_t_8) < 0) __PYX_ERR(0, 944, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":934 + /* "_pydevd_bundle/pydevd_cython.pyx":945 * # It can be used when running regularly (without step over/step in/step return) * global_cache_skips = {} * global_cache_frame_skips = {} # <<<<<<<<<<<<<< * * */ - __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_global_cache_frame_skips, __pyx_t_9) < 0) __PYX_ERR(0, 934, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 945, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_global_cache_frame_skips, __pyx_t_8) < 0) __PYX_ERR(0, 945, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":937 + /* "_pydevd_bundle/pydevd_cython.pyx":948 * * * def trace_dispatch(py_db, frame, event, arg): # <<<<<<<<<<<<<< * t = threadingCurrentThread() * */ - __pyx_t_9 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_11trace_dispatch, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 937, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_trace_dispatch, __pyx_t_9) < 0) __PYX_ERR(0, 937, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_11trace_dispatch, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_trace_dispatch, __pyx_t_8) < 0) __PYX_ERR(0, 948, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1107 + /* "_pydevd_bundle/pydevd_cython.pyx":1118 * * * if IS_IRONPYTHON: # <<<<<<<<<<<<<< * # This is far from ideal, as we'll leak frames (we'll always have the last created frame, not really * # the last topmost frame saved -- this should be Ok for our usage, but it may leak frames and things */ - __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_IS_IRONPYTHON); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1107, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_IS_IRONPYTHON); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1118, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_4) { - /* "_pydevd_bundle/pydevd_cython.pyx":1115 + /* "_pydevd_bundle/pydevd_cython.pyx":1126 * # * # See: https://github.com/IronLanguages/main/issues/1630 * from _pydevd_bundle.pydevd_additional_thread_info_regular import _tid_to_last_frame # <<<<<<<<<<<<<< * * _original_call = ThreadTracer.__call__ */ - __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_n_s_tid_to_last_frame); __Pyx_GIVEREF(__pyx_n_s_tid_to_last_frame); - PyList_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_tid_to_last_frame); - __pyx_t_11 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_additional, __pyx_t_9, -1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_11, __pyx_n_s_tid_to_last_frame); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_tid_to_last_frame, __pyx_t_9) < 0) __PYX_ERR(0, 1115, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_tid_to_last_frame); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_pydevd_bundle_pydevd_additional, __pyx_t_8, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_tid_to_last_frame); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_tid_to_last_frame, __pyx_t_8) < 0) __PYX_ERR(0, 1126, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1117 + /* "_pydevd_bundle/pydevd_cython.pyx":1128 * from _pydevd_bundle.pydevd_additional_thread_info_regular import _tid_to_last_frame * * _original_call = ThreadTracer.__call__ # <<<<<<<<<<<<<< * * */ - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_n_s_call_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_original_call, __pyx_t_11) < 0) __PYX_ERR(0, 1117, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_n_s_call_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_original_call, __pyx_t_2) < 0) __PYX_ERR(0, 1128, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1120 + /* "_pydevd_bundle/pydevd_cython.pyx":1131 * * * def __call__(self, frame, event, arg): # <<<<<<<<<<<<<< * _tid_to_last_frame[self._args[1].ident] = frame * return _original_call(self, frame, event, arg) */ - __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_13__call__, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_call_2, __pyx_t_11) < 0) __PYX_ERR(0, 1120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_13__call__, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_call_2, __pyx_t_2) < 0) __PYX_ERR(0, 1131, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1125 + /* "_pydevd_bundle/pydevd_cython.pyx":1136 * * * ThreadTracer.__call__ = __call__ # <<<<<<<<<<<<<< * */ - __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_call_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1125, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_n_s_call_2, __pyx_t_11) < 0) __PYX_ERR(0, 1125, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_call_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_ptype_14_pydevd_bundle_13pydevd_cython_ThreadTracer), __pyx_n_s_call_2, __pyx_t_2) < 0) __PYX_ERR(0, 1136, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "_pydevd_bundle/pydevd_cython.pyx":1107 + /* "_pydevd_bundle/pydevd_cython.pyx":1118 * * * if IS_IRONPYTHON: # <<<<<<<<<<<<<< @@ -28610,10 +29023,10 @@ * if __pyx_checksum != 0xa9a4341: * from pickle import PickleError as __pyx_PickleError */ - __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_15__pyx_unpickle_PyDBAdditionalThreadInfo, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PyDBAdditionalThr, __pyx_t_11) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_15__pyx_unpickle_PyDBAdditionalThreadInfo, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PyDBAdditionalThr, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "(tree fragment)":9 * __pyx_unpickle_PyDBAdditionalThreadInfo__set_state( __pyx_result, __pyx_state) @@ -28622,20 +29035,20 @@ * __pyx_result.conditional_breakpoint_exception = __pyx_state[0]; __pyx_result.is_tracing = __pyx_state[1]; __pyx_result.pydev_call_from_jinja2 = __pyx_state[2]; __pyx_result.pydev_call_inside_jinja2 = __pyx_state[3]; __pyx_result.pydev_django_resolve_frame = __pyx_state[4]; __pyx_result.pydev_func_name = __pyx_state[5]; __pyx_result.pydev_message = __pyx_state[6]; __pyx_result.pydev_next_line = __pyx_state[7]; __pyx_result.pydev_notify_kill = __pyx_state[8]; __pyx_result.pydev_smart_step_stop = __pyx_state[9]; __pyx_result.pydev_state = __pyx_state[10]; __pyx_result.pydev_step_cmd = __pyx_state[11]; __pyx_result.pydev_step_stop = __pyx_state[12]; __pyx_result.suspend_type = __pyx_state[13] * if len(__pyx_state) > 14 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_17__pyx_unpickle_PyDBFrame, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PyDBFrame, __pyx_t_11) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_17__pyx_unpickle_PyDBFrame, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PyDBFrame, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "(tree fragment)":1 * def __pyx_unpickle_SafeCallWrapper(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * if __pyx_checksum != 0x77c077b: * from pickle import PickleError as __pyx_PickleError */ - __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_19__pyx_unpickle_SafeCallWrapper, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_SafeCallWrapper, __pyx_t_11) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_19__pyx_unpickle_SafeCallWrapper, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_SafeCallWrapper, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "(tree fragment)":9 * __pyx_unpickle_SafeCallWrapper__set_state( __pyx_result, __pyx_state) @@ -28644,20 +29057,20 @@ * __pyx_result.method_object = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): */ - __pyx_t_11 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_21__pyx_unpickle_ThreadTracer, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ThreadTracer, __pyx_t_11) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_14_pydevd_bundle_13pydevd_cython_21__pyx_unpickle_ThreadTracer, NULL, __pyx_n_s_pydevd_bundle_pydevd_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ThreadTracer, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "_pydevd_bundle/pydevd_cython.pyx":1 * # Important: Autogenerated file. # <<<<<<<<<<<<<< * * # DO NOT edit manually! */ - __pyx_t_11 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_11) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /*--- Wrapped vars code ---*/ @@ -28665,8 +29078,8 @@ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); if (__pyx_m) { if (__pyx_d) { @@ -28705,6 +29118,20 @@ } #endif +/* PyObjectGetAttrStr */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro)) + return tp->tp_getattro(obj, attr_name); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_getattr)) + return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); +#endif + return PyObject_GetAttr(obj, attr_name); +} +#endif + /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); @@ -28723,10 +29150,19 @@ static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { PyObject *result; #if !CYTHON_AVOID_BORROWED_REFS +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 + result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); + if (likely(result)) { + Py_INCREF(result); + } else if (unlikely(PyErr_Occurred())) { + result = NULL; + } else { +#else result = PyDict_GetItem(__pyx_d, name); if (likely(result)) { Py_INCREF(result); } else { +#endif #else result = PyObject_GetItem(__pyx_d, name); if (!result) { @@ -28738,7 +29174,7 @@ } /* PyCFunctionFastCall */ - #if CYTHON_FAST_PYCCALL + #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { PyCFunctionObject *func = (PyCFunctionObject*)func_obj; PyCFunction meth = PyCFunction_GET_FUNCTION(func); @@ -28761,7 +29197,7 @@ #endif /* PyFunctionFastCall */ - #if CYTHON_FAST_PYCALL + #if CYTHON_FAST_PYCALL #include "frameobject.h" static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, PyObject *globals) { @@ -28881,7 +29317,7 @@ #endif /* PyObjectCall */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; ternaryfunc call = func->ob_type->tp_call; @@ -28901,7 +29337,7 @@ #endif /* PyObjectCallMethO */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; @@ -28921,7 +29357,7 @@ #endif /* PyObjectCallOneArg */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_New(1); @@ -28961,7 +29397,7 @@ #endif /* PyObjectCallNoArg */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { @@ -28982,7 +29418,7 @@ #endif /* RaiseArgTupleInvalid */ - static void __Pyx_RaiseArgtupleInvalid( + static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, @@ -29008,7 +29444,7 @@ } /* KeywordStringCheck */ - static int __Pyx_CheckKeywordStrings( + static int __Pyx_CheckKeywordStrings( PyObject *kwdict, const char* function_name, int kw_allowed) @@ -29048,7 +29484,7 @@ } /* PyErrExceptionMatches */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(tuple); @@ -29073,7 +29509,7 @@ #endif /* PyErrFetchRestore */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; @@ -29097,7 +29533,7 @@ #endif /* GetAttr */ - static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { + static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { #if CYTHON_USE_TYPE_SLOTS #if PY_MAJOR_VERSION >= 3 if (likely(PyUnicode_Check(n))) @@ -29110,7 +29546,7 @@ } /* GetAttr3 */ - static PyObject *__Pyx_GetAttr3Default(PyObject *d) { + static PyObject *__Pyx_GetAttr3Default(PyObject *d) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) @@ -29125,7 +29561,7 @@ } /* RaiseDoubleKeywords */ - static void __Pyx_RaiseDoubleKeywordsError( + static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { @@ -29139,7 +29575,7 @@ } /* ParseKeywords */ - static int __Pyx_ParseOptionalKeywords( + static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, @@ -29241,9 +29677,9 @@ } /* SaveResetException */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - #if PY_VERSION_HEX >= 0x030700A2 + #if PY_VERSION_HEX >= 0x030700A3 *type = tstate->exc_state.exc_type; *value = tstate->exc_state.exc_value; *tb = tstate->exc_state.exc_traceback; @@ -29258,7 +29694,7 @@ } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; - #if PY_VERSION_HEX >= 0x030700A2 + #if PY_VERSION_HEX >= 0x030700A3 tmp_type = tstate->exc_state.exc_type; tmp_value = tstate->exc_state.exc_value; tmp_tb = tstate->exc_state.exc_traceback; @@ -29280,7 +29716,7 @@ #endif /* GetException */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) { @@ -29317,7 +29753,7 @@ *value = local_value; *tb = local_tb; #if CYTHON_FAST_THREAD_STATE - #if PY_VERSION_HEX >= 0x030700A2 + #if PY_VERSION_HEX >= 0x030700A3 tmp_type = tstate->exc_state.exc_type; tmp_value = tstate->exc_state.exc_value; tmp_tb = tstate->exc_state.exc_traceback; @@ -29350,7 +29786,7 @@ } /* HasAttr */ - static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { + static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { PyObject *r; if (unlikely(!__Pyx_PyBaseString_Check(n))) { PyErr_SetString(PyExc_TypeError, @@ -29368,20 +29804,20 @@ } /* RaiseTooManyValuesToUnpack */ - static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { + static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } /* RaiseNeedMoreValuesToUnpack */ - static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { + static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", index, (index == 1) ? "" : "s"); } /* IterFinish */ - static CYTHON_INLINE int __Pyx_IterFinish(void) { + static CYTHON_INLINE int __Pyx_IterFinish(void) { #if CYTHON_FAST_THREAD_STATE PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* exc_type = tstate->curexc_type; @@ -29416,7 +29852,7 @@ } /* UnpackItemEndCheck */ - static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { + static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); @@ -29428,17 +29864,31 @@ } /* StringJoin */ - #if !CYTHON_COMPILING_IN_CPYTHON + #if !CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) { return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL); } #endif +/* PyObjectSetAttrStr */ + #if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_setattro)) + return tp->tp_setattro(obj, attr_name, value); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_setattr)) + return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value); +#endif + return PyObject_SetAttr(obj, attr_name, value); +} +#endif + /* SwapException */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; - #if PY_VERSION_HEX >= 0x030700A2 + #if PY_VERSION_HEX >= 0x030700A3 tmp_type = tstate->exc_state.exc_type; tmp_value = tstate->exc_state.exc_value; tmp_tb = tstate->exc_state.exc_traceback; @@ -29469,7 +29919,7 @@ #endif /* GetItemInt */ - static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { + static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (!j) return NULL; r = PyObject_GetItem(o, j); @@ -29556,12 +30006,12 @@ } /* None */ - static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { + static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } /* ArgTypeTest */ - static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) + static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); @@ -29582,7 +30032,7 @@ } /* BytesEquals */ - static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { + static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else @@ -29629,7 +30079,7 @@ } /* UnicodeEquals */ - static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { + static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else @@ -29708,6 +30158,9 @@ } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); @@ -29728,7 +30181,7 @@ } /* ExtTypeTest */ - static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { + static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; @@ -29741,7 +30194,7 @@ } /* FetchCommonType */ - static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { + static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { PyObject* fake_module; PyTypeObject* cached_type = NULL; fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI); @@ -29780,7 +30233,8 @@ } /* CythonFunction */ - static PyObject * + #include +static PyObject * __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure) { if (unlikely(op->func_doc == NULL)) { @@ -30372,13 +30826,42 @@ Py_INCREF(dict); } +/* ObjectGetItem */ + #if CYTHON_USE_TYPE_SLOTS +static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { + PyObject *runerr; + Py_ssize_t key_value; + PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; + if (unlikely(!(m && m->sq_item))) { + PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); + return NULL; + } + key_value = __Pyx_PyIndex_AsSsize_t(index); + if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { + return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); + } + if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { + PyErr_Clear(); + PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); + } + return NULL; +} +static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { + PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; + if (likely(m && m->mp_subscript)) { + return m->mp_subscript(obj, key); + } + return __Pyx_PyObject_GetIndex(obj, key); +} +#endif + /* RaiseNoneIterError */ - static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { + static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* PyIntBinop */ - #if !CYTHON_COMPILING_IN_PYPY + #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_AndObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { @@ -30412,6 +30895,7 @@ goto long_long; #endif } + CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); @@ -30422,6 +30906,7 @@ goto long_long; #endif } + CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); @@ -30432,6 +30917,7 @@ goto long_long; #endif } + CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); @@ -30442,6 +30928,7 @@ goto long_long; #endif } + CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); @@ -30452,6 +30939,7 @@ goto long_long; #endif } + CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); @@ -30462,6 +30950,7 @@ goto long_long; #endif } + CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_and(op1, op2); } } @@ -30480,8 +30969,136 @@ } #endif +/* UnpackUnboundCMethod */ + static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) { + PyObject *method; + method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name); + if (unlikely(!method)) + return -1; + target->method = method; +#if CYTHON_COMPILING_IN_CPYTHON + #if PY_MAJOR_VERSION >= 3 + if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type))) + #endif + { + PyMethodDescrObject *descr = (PyMethodDescrObject*) method; + target->func = descr->d_method->ml_meth; + target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST); + } +#endif + return 0; +} + +/* CallUnboundCMethod1 */ + #if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) { + if (likely(cfunc->func)) { + int flag = cfunc->flag; + if (flag == METH_O) { + return (*(cfunc->func))(self, arg); + } else if (PY_VERSION_HEX >= 0x030600B1 && flag == METH_FASTCALL) { + if (PY_VERSION_HEX >= 0x030700A0) { + return (*(__Pyx_PyCFunctionFast)cfunc->func)(self, &arg, 1); + } else { + return (*(__Pyx_PyCFunctionFastWithKeywords)cfunc->func)(self, &arg, 1, NULL); + } + } else if (PY_VERSION_HEX >= 0x030700A0 && flag == (METH_FASTCALL | METH_KEYWORDS)) { + return (*(__Pyx_PyCFunctionFastWithKeywords)cfunc->func)(self, &arg, 1, NULL); + } + } + return __Pyx__CallUnboundCMethod1(cfunc, self, arg); +} +#endif +static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){ + PyObject *args, *result = NULL; + if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; +#if CYTHON_COMPILING_IN_CPYTHON + if (cfunc->func && (cfunc->flag & METH_VARARGS)) { + args = PyTuple_New(1); + if (unlikely(!args)) goto bad; + Py_INCREF(arg); + PyTuple_SET_ITEM(args, 0, arg); + if (cfunc->flag & METH_KEYWORDS) + result = (*(PyCFunctionWithKeywords)cfunc->func)(self, args, NULL); + else + result = (*cfunc->func)(self, args); + } else { + args = PyTuple_New(2); + if (unlikely(!args)) goto bad; + Py_INCREF(self); + PyTuple_SET_ITEM(args, 0, self); + Py_INCREF(arg); + PyTuple_SET_ITEM(args, 1, arg); + result = __Pyx_PyObject_Call(cfunc->method, args, NULL); + } +#else + args = PyTuple_Pack(2, self, arg); + if (unlikely(!args)) goto bad; + result = __Pyx_PyObject_Call(cfunc->method, args, NULL); +#endif +bad: + Py_XDECREF(args); + return result; +} + +/* CallUnboundCMethod2 */ + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1 +static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) { + if (likely(cfunc->func)) { + PyObject *args[2] = {arg1, arg2}; + if (cfunc->flag == METH_FASTCALL) { + #if PY_VERSION_HEX >= 0x030700A0 + return (*(__Pyx_PyCFunctionFast)cfunc->func)(self, args, 2); + #else + return (*(__Pyx_PyCFunctionFastWithKeywords)cfunc->func)(self, args, 2, NULL); + #endif + } + #if PY_VERSION_HEX >= 0x030700A0 + if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS)) + return (*(__Pyx_PyCFunctionFastWithKeywords)cfunc->func)(self, args, 2, NULL); + #endif + } + return __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2); +} +#endif +static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){ + PyObject *args, *result = NULL; + if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; +#if CYTHON_COMPILING_IN_CPYTHON + if (cfunc->func && (cfunc->flag & METH_VARARGS)) { + args = PyTuple_New(2); + if (unlikely(!args)) goto bad; + Py_INCREF(arg1); + PyTuple_SET_ITEM(args, 0, arg1); + Py_INCREF(arg2); + PyTuple_SET_ITEM(args, 1, arg2); + if (cfunc->flag & METH_KEYWORDS) + result = (*(PyCFunctionWithKeywords)cfunc->func)(self, args, NULL); + else + result = (*cfunc->func)(self, args); + } else { + args = PyTuple_New(3); + if (unlikely(!args)) goto bad; + Py_INCREF(self); + PyTuple_SET_ITEM(args, 0, self); + Py_INCREF(arg1); + PyTuple_SET_ITEM(args, 1, arg1); + Py_INCREF(arg2); + PyTuple_SET_ITEM(args, 2, arg2); + result = __Pyx_PyObject_Call(cfunc->method, args, NULL); + } +#else + args = PyTuple_Pack(3, self, arg1, arg2); + if (unlikely(!args)) goto bad; + result = __Pyx_PyObject_Call(cfunc->method, args, NULL); +#endif +bad: + Py_XDECREF(args); + return result; +} + /* dict_getitem_default */ - static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) { + static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) { PyObject* value; #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY value = PyDict_GetItemWithError(d, key); @@ -30491,6 +31108,7 @@ value = default_value; } Py_INCREF(value); + if ((1)); #else if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) { value = PyDict_GetItem(d, key); @@ -30498,18 +31116,19 @@ value = default_value; } Py_INCREF(value); - } else { - if (default_value == Py_None) - default_value = NULL; - value = PyObject_CallMethodObjArgs( - d, __pyx_n_s_get, key, default_value, NULL); } #endif + else { + if (default_value == Py_None) + value = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_get, d, key); + else + value = __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyDict_Type_get, d, key, default_value); + } return value; } /* RaiseException */ - #if PY_MAJOR_VERSION < 3 + #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare @@ -30668,7 +31287,7 @@ #endif /* PyIntBinop */ - #if !CYTHON_COMPILING_IN_PYPY + #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED int inplace) { if (op1 == op2) { Py_RETURN_TRUE; @@ -30700,31 +31319,37 @@ a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } + CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } + CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } + CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } + CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } + CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } + CYTHON_FALLTHROUGH; #if PyLong_SHIFT < 30 && PyLong_SHIFT != 15 default: return PyLong_Type.tp_richcompare(op1, op2, Py_EQ); #else @@ -30753,7 +31378,7 @@ #endif /* Import */ - static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { + static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; @@ -30818,7 +31443,7 @@ } /* ImportFrom */ - static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { + static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Format(PyExc_ImportError, @@ -30831,8 +31456,58 @@ return value; } +/* PyObject_GenericGetAttrNoDict */ + #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { + PyErr_Format(PyExc_AttributeError, +#if PY_MAJOR_VERSION >= 3 + "'%.50s' object has no attribute '%U'", + tp->tp_name, attr_name); +#else + "'%.50s' object has no attribute '%.400s'", + tp->tp_name, PyString_AS_STRING(attr_name)); +#endif + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { + PyObject *descr; + PyTypeObject *tp = Py_TYPE(obj); + if (unlikely(!PyString_Check(attr_name))) { + return PyObject_GenericGetAttr(obj, attr_name); + } + assert(!tp->tp_dictoffset); + descr = _PyType_Lookup(tp, attr_name); + if (unlikely(!descr)) { + return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); + } + Py_INCREF(descr); + #if PY_MAJOR_VERSION < 3 + if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) + #endif + { + descrgetfunc f = Py_TYPE(descr)->tp_descr_get; + if (unlikely(f)) { + PyObject *res = f(descr, obj, (PyObject *)tp); + Py_DECREF(descr); + return res; + } + } + return descr; +} +#endif + +/* PyObject_GenericGetAttr */ + #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { + if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { + return PyObject_GenericGetAttr(obj, attr_name); + } + return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); +} +#endif + /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { + static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { int ret; PyObject *name_attr; name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name); @@ -30908,7 +31583,7 @@ } /* SetVTable */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable) { + static int __Pyx_SetVtable(PyObject *dict, void *vtable) { #if PY_VERSION_HEX >= 0x02070000 PyObject *ob = PyCapsule_New(vtable, 0, 0); #else @@ -30925,8 +31600,108 @@ return -1; } +/* FastTypeChecks */ + #if CYTHON_COMPILING_IN_CPYTHON +static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { + while (a) { + a = a->tp_base; + if (a == b) + return 1; + } + return b == &PyBaseObject_Type; +} +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { + PyObject *mro; + if (a == b) return 1; + mro = a->tp_mro; + if (likely(mro)) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(mro); + for (i = 0; i < n; i++) { + if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) + return 1; + } + return 0; + } + return __Pyx_InBases(a, b); +} +#if PY_MAJOR_VERSION == 2 +static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { + PyObject *exception, *value, *tb; + int res; + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ErrFetch(&exception, &value, &tb); + res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + if (!res) { + res = PyObject_IsSubclass(err, exc_type2); + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + } + __Pyx_ErrRestore(exception, value, tb); + return res; +} +#else +static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { + int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; + if (!res) { + res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); + } + return res; +} +#endif +static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + assert(PyExceptionClass_Check(exc_type)); + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; i= 0 && code_line > entries[end].code_line) { return count; @@ -31108,7 +31886,7 @@ } /* AddTraceback */ - #include "compile.h" + #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( @@ -31193,7 +31971,7 @@ } /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -31224,7 +32002,7 @@ } /* CIntFromPyVerify */ - #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) @@ -31246,7 +32024,7 @@ } /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -31277,7 +32055,7 @@ } /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { + static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 @@ -31466,7 +32244,7 @@ } /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { + static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 @@ -31654,80 +32432,8 @@ return (long) -1; } -/* FastTypeChecks */ - #if CYTHON_COMPILING_IN_CPYTHON -static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { - while (a) { - a = a->tp_base; - if (a == b) - return 1; - } - return b == &PyBaseObject_Type; -} -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { - PyObject *mro; - if (a == b) return 1; - mro = a->tp_mro; - if (likely(mro)) { - Py_ssize_t i, n; - n = PyTuple_GET_SIZE(mro); - for (i = 0; i < n; i++) { - if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) - return 1; - } - return 0; - } - return __Pyx_InBases(a, b); -} -#if PY_MAJOR_VERSION == 2 -static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { - PyObject *exception, *value, *tb; - int res; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&exception, &value, &tb); - res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - if (!res) { - res = PyObject_IsSubclass(err, exc_type2); - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - } - __Pyx_ErrRestore(exception, value, tb); - return res; -} -#else -static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { - int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; - if (!res) { - res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); - } - return res; -} -#endif -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) { - if (likely(err == exc_type)) return 1; - if (likely(PyExceptionClass_Check(err))) { - return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type); - } - return PyErr_GivenExceptionMatches(err, exc_type); -} -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) { - if (likely(err == exc_type1 || err == exc_type2)) return 1; - if (likely(PyExceptionClass_Check(err))) { - return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2); - } - return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2)); -} -#endif - /* CheckBinaryVersion */ - static int __Pyx_check_binary_version(void) { + static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); @@ -31743,7 +32449,7 @@ } /* ModuleImport */ - #ifndef __PYX_HAVE_RT_ImportModule + #ifndef __PYX_HAVE_RT_ImportModule #define __PYX_HAVE_RT_ImportModule static PyObject *__Pyx_ImportModule(const char *name) { PyObject *py_name = 0; @@ -31761,7 +32467,7 @@ #endif /* TypeImport */ - #ifndef __PYX_HAVE_RT_ImportType + #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict) @@ -31826,7 +32532,7 @@ #endif /* InitStrings */ - static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { + static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { @@ -31852,7 +32558,7 @@ if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) - PyErr_Clear(); + return -1; ++t; } return 0; @@ -32066,6 +32772,9 @@ Py_DECREF(x); return ival; } +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { + return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); +} static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { return PyInt_FromSize_t(ival); } Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_26_64.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_26_64.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_27_64.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_27_64.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_34_64.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_34_64.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_35_64.cpython-35m-darwin.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_35_64.cpython-35m-darwin.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_36_64.cpython-36m-darwin.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_36_64.cpython-36m-darwin.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_37_64.cpython-37m-darwin.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_darwin_37_64.cpython-37m-darwin.so differ diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython.pyx pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython.pyx --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython.pyx 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython.pyx 2019-03-19 14:23:58.000000000 +0000 @@ -11,7 +11,7 @@ # from _pydevd_bundle.pydevd_frame import PyDBFrame # ENDIF -version = 12 +version = 15 if not hasattr(sys, '_current_frames'): @@ -43,10 +43,10 @@ ret[thread.getId()] = frame return ret - - elif IS_IRONPYTHON: + + elif IS_IRONPYTHON: _tid_to_last_frame = {} - + # IronPython doesn't have it. Let's use our workaround... def _current_frames(): return _tid_to_last_frame @@ -144,7 +144,7 @@ from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE, PYDEV_FILE from _pydevd_bundle.pydevd_frame_utils import add_exception_to_frame, just_raised, remove_exception_from_frame from _pydevd_bundle.pydevd_utils import get_clsname_for_code -from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame +from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file try: from inspect import CO_GENERATOR @@ -294,6 +294,7 @@ if trace is not None: #on jython trace is None on the first event exception_breakpoint = get_exception_breakpoint( exception, main_debugger.break_on_caught_exceptions) + is_real = is_real_file(frame.f_code.co_filename) if exception_breakpoint is not None: add_exception_to_frame(frame, (exception, value, trace)) @@ -324,7 +325,11 @@ flag = True else: flag = False - else: + + if flag: + info.pydev_message = "python-%s" % info.pydev_message + + if exception_breakpoint is None or (not flag and not is_real): try: if main_debugger.plugin is not None: result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) @@ -511,6 +516,11 @@ main_debugger.remove_return_values_flag = False traceback.print_exc() + def clear_run_state(self, info): + info.pydev_step_stop = None + info.pydev_step_cmd = -1 + info.pydev_state = STATE_RUN + # IFDEF CYTHON -- DONT EDIT THIS FILE (it is automatically generated) cpdef trace_dispatch(self, frame, str event, arg): cdef str filename; @@ -610,7 +620,7 @@ if can_skip: if plugin_manager is not None and main_debugger.has_plugin_line_breaks: - can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame) + can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame, info) # CMD_STEP_OVER = 108 if can_skip and is_return and main_debugger.show_return_values and info.pydev_step_cmd == 108 and frame.f_back is info.pydev_step_stop: @@ -753,7 +763,9 @@ if breakpoint is None and not (is_return or is_exception_event): # No stop from anyone and no breakpoint found in line (cache that). frame_skips_cache[line_cache_key] = 0 - + except KeyboardInterrupt: + self.clear_run_state(info) + raise except: traceback.print_exc() raise @@ -873,11 +885,10 @@ self.do_wait_suspend(thread, back, event, arg) else: #in jython we may not have a back frame - info.pydev_step_stop = None - info.pydev_step_cmd = -1 - info.pydev_state = STATE_RUN + self.clear_run_state(info) except KeyboardInterrupt: + self.clear_run_state(info) raise except: try: Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_26_32.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_26_32.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_26_64.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_26_64.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_32.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_32.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_64.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_27_64.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_34_32.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_34_32.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_34_64.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_34_64.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_35_32.cp35-win32.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_35_32.cp35-win32.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_35_64.cp35-win_amd64.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_35_64.cp35-win_amd64.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_32.cp36-win32.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_32.cp36-win32.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_64.cp36-win_amd64.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_36_64.cp36-win_amd64.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_32.cp37-win32.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_32.cp37-win32.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_64.cp37-win_amd64.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_cython_win32_37_64.cp37-win_amd64.pyd differ diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_dont_trace_files.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_dont_trace_files.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_dont_trace_files.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_dont_trace_files.py 2019-03-19 14:23:58.000000000 +0000 @@ -37,7 +37,6 @@ '_pydev_saved_modules.py': PYDEV_FILE, '_pydev_sys_patch.py': PYDEV_FILE, '_pydev_tipper_common.py': PYDEV_FILE, - '_pydev_uuid_old.py': PYDEV_FILE, '_pydev_xmlrpclib.py': PYDEV_FILE, 'django_debug.py': PYDEV_FILE, 'fix_getpass.py': PYDEV_FILE, @@ -54,6 +53,8 @@ 'pydev_ipython_console.py': PYDEV_FILE, 'pydev_ipython_console_011.py': PYDEV_FILE, 'pydev_is_thread_alive.py': PYDEV_FILE, + 'pydev_jupyter_plugin.py': PYDEV_FILE, + 'pydev_jupyter_utils.py': PYDEV_FILE, 'pydev_localhost.py': PYDEV_FILE, 'pydev_log.py': PYDEV_FILE, 'pydev_monkey.py': PYDEV_FILE, @@ -99,6 +100,7 @@ 'pydevd_plugin_utils.py': PYDEV_FILE, 'pydevd_plugins_django_form_str.py': PYDEV_FILE, 'pydevd_process_net_command.py': PYDEV_FILE, + 'pydevd_pycharm.py': PYDEV_FILE, 'pydevd_referrers.py': PYDEV_FILE, 'pydevd_reload.py': PYDEV_FILE, 'pydevd_resolver.py': PYDEV_FILE, @@ -106,6 +108,7 @@ 'pydevd_signature.py': PYDEV_FILE, 'pydevd_stackless.py': PYDEV_FILE, 'pydevd_thread_wrappers.py': PYDEV_FILE, + 'pydevd_thrift.py': PYDEV_FILE, 'pydevd_trace_api.py': PYDEV_FILE, 'pydevd_trace_dispatch.py': PYDEV_FILE, 'pydevd_trace_dispatch_regular.py': PYDEV_FILE, diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_frame.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_frame.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_frame.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_frame.py 2019-03-19 14:23:58.000000000 +0000 @@ -15,7 +15,7 @@ from _pydevd_bundle.pydevd_dont_trace_files import DONT_TRACE, PYDEV_FILE from _pydevd_bundle.pydevd_frame_utils import add_exception_to_frame, just_raised, remove_exception_from_frame from _pydevd_bundle.pydevd_utils import get_clsname_for_code -from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame +from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, is_real_file try: from inspect import CO_GENERATOR @@ -165,6 +165,7 @@ if trace is not None: #on jython trace is None on the first event exception_breakpoint = get_exception_breakpoint( exception, main_debugger.break_on_caught_exceptions) + is_real = is_real_file(frame.f_code.co_filename) if exception_breakpoint is not None: add_exception_to_frame(frame, (exception, value, trace)) @@ -195,7 +196,11 @@ flag = True else: flag = False - else: + + if flag: + info.pydev_message = "python-%s" % info.pydev_message + + if exception_breakpoint is None or (not flag and not is_real): try: if main_debugger.plugin is not None: result = main_debugger.plugin.exception_break(main_debugger, self, frame, self._args, arg) @@ -382,6 +387,11 @@ main_debugger.remove_return_values_flag = False traceback.print_exc() + def clear_run_state(self, info): + info.pydev_step_stop = None + info.pydev_step_cmd = -1 + info.pydev_state = STATE_RUN + # IFDEF CYTHON # cpdef trace_dispatch(self, frame, str event, arg): # cdef str filename; @@ -481,7 +491,7 @@ if can_skip: if plugin_manager is not None and main_debugger.has_plugin_line_breaks: - can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame) + can_skip = not plugin_manager.can_not_skip(main_debugger, self, frame, info) # CMD_STEP_OVER = 108 if can_skip and is_return and main_debugger.show_return_values and info.pydev_step_cmd == 108 and frame.f_back is info.pydev_step_stop: @@ -624,7 +634,9 @@ if breakpoint is None and not (is_return or is_exception_event): # No stop from anyone and no breakpoint found in line (cache that). frame_skips_cache[line_cache_key] = 0 - + except KeyboardInterrupt: + self.clear_run_state(info) + raise except: traceback.print_exc() raise @@ -744,11 +756,10 @@ self.do_wait_suspend(thread, back, event, arg) else: #in jython we may not have a back frame - info.pydev_step_stop = None - info.pydev_step_cmd = -1 - info.pydev_state = STATE_RUN + self.clear_run_state(info) except KeyboardInterrupt: + self.clear_run_state(info) raise except: try: diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_plugin_utils.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_plugin_utils.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_plugin_utils.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_plugin_utils.py 2019-03-19 14:23:58.000000000 +0000 @@ -2,6 +2,7 @@ from _pydev_bundle import pydev_log from _pydevd_bundle import pydevd_trace_api +from _pydevd_bundle.pydevd_constants import IS_PYCHARM try: from pydevd_plugins import django_debug @@ -15,6 +16,14 @@ jinja2_debug = None pydev_log.debug('Unable to load jinja2_debug plugin') +try: + import pydev_jupyter_plugin +except: + pydev_jupyter_plugin = None + if IS_PYCHARM: + pydev_log.debug('Unable to load jupyter_debug plugin') + + def load_plugins(): plugins = [] if django_debug is not None: @@ -22,6 +31,10 @@ if jinja2_debug is not None: plugins.append(jinja2_debug) + + if pydev_jupyter_plugin is not None: + plugins.append(pydev_jupyter_plugin) + return plugins diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_process_net_command.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_process_net_command.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_process_net_command.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_process_net_command.py 2019-03-19 14:23:58.000000000 +0000 @@ -292,13 +292,13 @@ if not IS_PY3K: # In Python 3, the frame object will have unicode for the file, whereas on python 2 it has a byte-array encoded with the filesystem encoding. file = file.encode(file_system_encoding) - file = pydevd_file_utils.norm_file_to_server(file) - - if not pydevd_file_utils.exists(file): - sys.stderr.write('pydev debugger: warning: trying to add breakpoint'\ - ' to file that does not exist: %s (will have no effect)\n' % (file,)) - sys.stderr.flush() + if pydevd_file_utils.is_real_file(file): + file = pydevd_file_utils.norm_file_to_server(file) + if not pydevd_file_utils.exists(file): + sys.stderr.write('pydev debugger: warning: trying to add breakpoint'\ + ' to file that does not exist: %s (will have no effect)\n' % (file,)) + sys.stderr.flush() if len(condition) <= 0 or condition is None or condition == "None": condition = None @@ -324,7 +324,10 @@ supported_type = False if not supported_type: - raise NameError(type) + if type == 'jupyter-line': + return + else: + raise NameError(type) if DebugInfoHolder.DEBUG_TRACE_BREAKPOINTS > 0: pydev_log.debug('Added breakpoint:%s - line:%s - func_name:%s\n' % (file, line, func_name.encode('utf-8'))) @@ -339,6 +342,8 @@ py_db.consolidate_breakpoints(file, id_to_pybreakpoint, breakpoints) if py_db.plugin is not None: py_db.has_plugin_line_breaks = py_db.plugin.has_line_breaks() + if py_db.has_plugin_line_breaks: + py_db.frame_eval_func = None py_db.set_tracing_for_untraced_contexts_if_not_frame_eval(overwrite_prev_trace=True) py_db.enable_tracing_in_frames_while_running_if_frame_eval() @@ -351,7 +356,8 @@ if not IS_PY3K: # In Python 3, the frame object will have unicode for the file, whereas on python 2 it has a byte-array encoded with the filesystem encoding. file = file.encode(file_system_encoding) - file = pydevd_file_utils.norm_file_to_server(file) + if pydevd_file_utils.is_real_file(file): + file = pydevd_file_utils.norm_file_to_server(file) try: breakpoint_id = int(breakpoint_id) diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_resolver.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_resolver.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_resolver.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_resolver.py 2019-03-19 14:23:58.000000000 +0000 @@ -3,15 +3,18 @@ except: import io as StringIO import traceback +import warnings +from contextlib import contextmanager from os.path import basename from _pydevd_bundle import pydevd_constants -from _pydevd_bundle.pydevd_constants import dict_iter_items, dict_keys, xrange +from _pydevd_bundle.pydevd_constants import dict_iter_items, dict_keys, xrange, IS_PYCHARM +from _pydevd_bundle.pydevd_utils import get_var_and_offset # Note: 300 is already a lot to see in the outline (after that the user should really use the shell to get things) # and this also means we'll pass less information to the client side (which makes debugging faster). -MAX_ITEMS_TO_HANDLE = 300 +MAX_ITEMS_TO_HANDLE = 300 if not IS_PYCHARM else 100 TOO_LARGE_MSG = 'Too large to show contents. Max items to show: ' + str(MAX_ITEMS_TO_HANDLE) TOO_LARGE_ATTR = 'Unable to handle:' @@ -54,6 +57,13 @@ MethodWrapperType = None +@contextmanager +def suppress_warnings(): + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + yield + + #======================================================================================================================= # See: pydevd_extension_api module for resolver interface #======================================================================================================================= @@ -68,7 +78,8 @@ ''' def resolve(self, var, attribute): - return getattr(var, attribute) + with suppress_warnings(): + return getattr(var, attribute) def get_dictionary(self, var, names=None): if MethodWrapperType: @@ -146,7 +157,7 @@ if not names: names = self.get_names(var) - d = {} + d = OrderedDict() #Be aware that the order in which the filters are applied attempts to #optimize the operation by removing as many items as possible in the @@ -163,7 +174,8 @@ continue try: - attr = getattr(var, n) + with suppress_warnings(): + attr = getattr(var, n) #filter builtins? if filterBuiltIn: @@ -221,25 +233,32 @@ return key def init_dict(self): - return {} + return OrderedDict() def get_dictionary(self, dict): + dict, offset = get_var_and_offset(dict) + ret = self.init_dict() - i = 0 - for key, val in dict_iter_items(dict): - i += 1 - #we need to add the id because otherwise we cannot find the real object to get its contents later on. - key = '%s (%s)' % (self.key_to_str(key), id(key)) - ret[key] = val - if i > MAX_ITEMS_TO_HANDLE: - ret[TOO_LARGE_ATTR] = TOO_LARGE_MSG - break + for i, (key, val) in enumerate(dict_iter_items(dict)): + if i >= offset: + if i >= offset + MAX_ITEMS_TO_HANDLE: + if not IS_PYCHARM: + ret[TOO_LARGE_ATTR] = TOO_LARGE_MSG + break + # we need to add the id because otherwise we cannot find the real object to get its contents later on. + key = '%s (%s)' % (self.key_to_str(key), id(key)) + ret[key] = val ret['__len__'] = len(dict) # in case if the class extends built-in type and has some additional fields additional_fields = defaultResolver.get_dictionary(dict) - ret.update(additional_fields) + if IS_PYCHARM: + if offset == 0: + additional_fields.update(ret) + ret = additional_fields + else: + ret.update(additional_fields) return ret @@ -261,24 +280,32 @@ return getattr(var, attribute) def get_dictionary(self, var): + var, offset = get_var_and_offset(var) + l = len(var) - d = {} + d = OrderedDict() format_str = '%0' + str(int(len(str(l)))) + 'd' - i = 0 - for item in var: + i = offset + for item in var[offset:offset+MAX_ITEMS_TO_HANDLE]: d[format_str % i] = item i += 1 - - if i > MAX_ITEMS_TO_HANDLE: - d[TOO_LARGE_ATTR] = TOO_LARGE_MSG + + if i > MAX_ITEMS_TO_HANDLE + offset: + if not IS_PYCHARM: + d[TOO_LARGE_ATTR] = TOO_LARGE_MSG break - + d['__len__'] = len(var) # in case if the class extends built-in type and has some additional fields additional_fields = defaultResolver.get_dictionary(var) - d.update(additional_fields) + if IS_PYCHARM: + if offset == 0: + additional_fields.update(d) + d = additional_fields + else: + d.update(additional_fields) return d @@ -307,21 +334,28 @@ raise UnableToResolveVariableException('Unable to resolve %s in %s' % (attribute, var)) def get_dictionary(self, var): - d = {} + var, offset = get_var_and_offset(var) + + d = OrderedDict() i = 0 for item in var: + if i >= offset: + if i >= offset + MAX_ITEMS_TO_HANDLE: + if not IS_PYCHARM: + d[TOO_LARGE_ATTR] = TOO_LARGE_MSG + break + d[str(id(item))] = item i += 1 - d[str(id(item))] = item - - if i > MAX_ITEMS_TO_HANDLE: - d[TOO_LARGE_ATTR] = TOO_LARGE_MSG - break - d['__len__'] = len(var) # in case if the class extends built-in type and has some additional fields additional_fields = defaultResolver.get_dictionary(var) - d.update(additional_fields) + if IS_PYCHARM: + if offset == 0: + additional_fields.update(d) + d = additional_fields + else: + d.update(additional_fields) return d @@ -429,8 +463,33 @@ #======================================================================================================================= class DequeResolver(TupleResolver): def get_dictionary(self, var): - d = TupleResolver.get_dictionary(self, var) - d['maxlen'] = getattr(var, 'maxlen', None) + var, offset = get_var_and_offset(var) + + l = len(var) + d = OrderedDict() + + format_str = '%0' + str(int(len(str(l)))) + 'd' + + i = 0 + for item in var: + if i >= offset: + if i >= offset + MAX_ITEMS_TO_HANDLE: + if not IS_PYCHARM: + d[TOO_LARGE_ATTR] = TOO_LARGE_MSG + break + d[format_str % i] = item + i += 1 + + d['__len__'] = len(var) + # in case if the class extends built-in type and has some additional fields + additional_fields = defaultResolver.get_dictionary(var) + if IS_PYCHARM: + if offset == 0: + additional_fields['maxlen'] = getattr(var, 'maxlen', None) + additional_fields.update(d) + d = additional_fields + else: + d.update(additional_fields) return d diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_thrift.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_thrift.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_thrift.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_thrift.py 2019-03-19 14:23:58.000000000 +0000 @@ -16,6 +16,7 @@ from _pydevd_bundle.pydevd_vars import get_label, array_default_format, MAXIMUM_ARRAY_SIZE from pydev_console.protocol import DebugValue, GetArrayResponse, ArrayData, ArrayHeaders, ColHeader, RowHeader, \ UnsupportedArrayTypeException +from _pydevd_bundle.pydevd_utils import take_first_n_coll_elements try: import types @@ -227,8 +228,17 @@ return getattr(x, '__module__', None) == BUILTINS_MODULE_NAME +def is_numpy(x): + if not getattr(x, '__module__', None) == 'numpy': + return False + type_name = x.__name__ + return type_name == 'dtype' or type_name == 'bool_' or type_name == 'str_' or 'int' in type_name or 'uint' in type_name \ + or 'float' in type_name or 'complex' in type_name + + def should_evaluate_full_value(val): - return LOAD_VALUES_POLICY == ValuesPolicy.SYNC or (is_builtin(type(val)) and not isinstance(val, (list, tuple, dict))) + return LOAD_VALUES_POLICY == ValuesPolicy.SYNC or ((is_builtin(type(val)) or is_numpy(type(val))) + and not isinstance(val, (list, tuple, dict, set, frozenset))) def frame_vars_to_struct(frame_f_locals, hidden_ns=None): @@ -300,10 +310,12 @@ value = pydevd_resolver.frameResolver.get_frame_name(v) elif v.__class__ in (list, tuple): - if len(v) > 300: - value = '' % (len(v),) + if len(v) > pydevd_resolver.MAX_ITEMS_TO_HANDLE: + value = '%s: %s' % (str(v.__class__), take_first_n_coll_elements( + v, pydevd_resolver.MAX_ITEMS_TO_HANDLE)) + value = value.rstrip(')]}') + '...' else: - value = str(v) + value = '%s: %s' % (str(v.__class__, v)) else: value = str(v) else: @@ -528,9 +540,11 @@ def col_to_format(c): return format if dtypes[c] == 'f' and format else array_default_format(dtypes[c]) + iat = df.iat if dim == 1 or len(df.columns.unique()) == len(df.columns) else df.iloc + array_chunk.headers = header_data_to_thrift_struct(rows, cols, dtypes, col_bounds, col_to_format, df, dim) array_chunk.data = array_data_to_thrift_struct(rows, cols, - lambda r: (("%" + col_to_format(c)) % (df.iat[r, c] if dim > 1 else df.iat[r]) + lambda r: (("%" + col_to_format(c)) % (iat[r, c] if dim > 1 else iat[r]) for c in range(cols))) return array_chunk diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_trace_api.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_trace_api.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_trace_api.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_trace_api.py 2019-03-19 14:23:58.000000000 +0000 @@ -10,7 +10,7 @@ def get_breakpoints(plugin, pydb): return None -def can_not_skip(plugin, pydb, pydb_frame, frame): +def can_not_skip(plugin, pydb, pydb_frame, frame, info): return False def has_exception_breaks(plugin): diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_utils.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_utils.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_utils.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_utils.py 2019-03-19 14:23:58.000000000 +0000 @@ -7,8 +7,13 @@ except: from urllib.parse import quote # @UnresolvedImport +try: + from collections import OrderedDict +except: + OrderedDict = dict + import inspect -from _pydevd_bundle.pydevd_constants import IS_PY3K +from _pydevd_bundle.pydevd_constants import IS_PY3K, dict_iter_items import sys from _pydev_bundle import pydev_log @@ -206,3 +211,35 @@ return filename_to_ignored_by_filters_cache[filename] + +def take_first_n_coll_elements(coll, n): + if coll.__class__ in (list, tuple): + return coll[:n] + elif coll.__class__ in (set, frozenset): + buf = [] + for i, x in enumerate(coll): + if i >= n: + break + buf.append(x) + return type(coll)(buf) + elif coll.__class__ in (dict, OrderedDict): + ret = type(coll)() + for i, (k, v) in enumerate(dict_iter_items(coll)): + if i >= n: + break + ret[k] = v + return ret + else: + raise TypeError("Unsupported collection type: '%s'" % str(coll.__class__)) + + +class VariableWithOffset(object): + def __init__(self, data, offset): + self.data, self.offset = data, offset + + +def get_var_and_offset(var): + if isinstance(var, VariableWithOffset): + return var.data, var.offset + return var, 0 + diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_vars.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_vars.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_vars.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_vars.py 2019-03-19 14:23:58.000000000 +0000 @@ -14,11 +14,16 @@ from io import StringIO import sys # @Reimport +try: + from collections import OrderedDict +except: + OrderedDict = dict + from _pydev_imps._pydev_saved_modules import threading import traceback from _pydevd_bundle import pydevd_save_locals from _pydev_bundle.pydev_imports import Exec, execfile -from _pydevd_bundle.pydevd_utils import to_string +from _pydevd_bundle.pydevd_utils import to_string, VariableWithOffset SENTINEL_VALUE = [] @@ -162,7 +167,7 @@ BY_ID means we'll traverse the list of all objects alive to get the object. :attrs: after reaching the proper scope, we have to get the attributes until we find - the proper location (i.e.: obj\tattr1\tattr2) + the proper location (i.e.: obj\tattr1\tattr2). :note: when BY_ID is used, the frame_id is considered the id of the object to find and not the frame (as we don't care about the frame in this case). @@ -229,6 +234,23 @@ return var +def get_offset(attrs): + """ + Extract offset from the given attributes. + + :param attrs: The string of a compound variable fields split by tabs. + If an offset is given, it must go the first element. + :return: The value of offset if given or 0. + """ + offset = 0 + if attrs is not None: + try: + offset = int(attrs.split('\t')[0]) + except ValueError: + pass + return offset + + def resolve_compound_variable_fields(thread_id, frame_id, scope, attrs): """ Resolve compound variable in debugger scopes by its name and attributes @@ -239,16 +261,24 @@ :param attrs: after reaching the proper scope, we have to get the attributes until we find the proper location (i.e.: obj\tattr1\tattr2) :return: a dictionary of variables's fields + + :note: PyCharm supports progressive loading of large collections and uses the `attrs` + parameter to pass the offset, e.g. 300\t\obj\tattr1\tattr2 should return + the value of attr2 starting from the 300th element. This hack makes it possible + to add the support of progressive loading without extending of the protocol. """ + offset = get_offset(attrs) + + orig_attrs, attrs = attrs, attrs.split('\t', 1)[1] if offset else attrs var = getVariable(thread_id, frame_id, scope, attrs) try: _type, _typeName, resolver = get_type(var) - return _typeName, resolver.get_dictionary(var) + return _typeName, resolver.get_dictionary(VariableWithOffset(var, offset) if offset else var) except: sys.stderr.write('Error evaluating: thread_id: %s\nframe_id: %s\nscope: %s\nattrs: %s\n' % ( - thread_id, frame_id, scope, attrs,)) + thread_id, frame_id, scope, orig_attrs,)) traceback.print_exc() @@ -278,6 +308,10 @@ :param attrs: a sequence of variable's attributes separated by \t (i.e.: obj\tattr1\tattr2) :return: a dictionary of variables's fields """ + offset = get_offset(attrs) + + attrs = attrs.split('\t', 1)[1] if offset else attrs + attr_list = attrs.split('\t') for k in attr_list: @@ -286,7 +320,7 @@ try: type, _typeName, resolver = get_type(var) - return resolver.get_dictionary(var) + return resolver.get_dictionary(VariableWithOffset(var, offset) if offset else var) except: traceback.print_exc() @@ -600,8 +634,10 @@ def col_to_format(c): return format if dtypes[c] == 'f' and format else array_default_format(dtypes[c]) + iat = df.iat if dim == 1 or len(df.columns.unique()) == len(df.columns) else df.iloc + xml += header_data_to_xml(rows, cols, dtypes, col_bounds, col_to_format, df, dim) - xml += array_data_to_xml(rows, cols, lambda r: (("%" + col_to_format(c)) % (df.iat[r, c] if dim > 1 else df.iat[r]) + xml += array_data_to_xml(rows, cols, lambda r: (("%" + col_to_format(c)) % (iat[r, c] if dim > 1 else iat[r]) for c in range(cols))) return xml diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_xml.py pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_xml.py --- pycharm-2018.3.5/helpers/pydev/_pydevd_bundle/pydevd_xml.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_bundle/pydevd_xml.py 2019-03-19 14:23:58.000000000 +0000 @@ -13,6 +13,7 @@ BUILTINS_MODULE_NAME, MAXIMUM_VARIABLE_REPRESENTATION_SIZE, RETURN_VALUES_DICT, LOAD_VALUES_POLICY, ValuesPolicy, DEFAULT_VALUES_DICT from _pydev_bundle.pydev_imports import quote from _pydevd_bundle.pydevd_extension_api import TypeResolveProvider, StrPresentationProvider +from _pydevd_bundle.pydevd_utils import take_first_n_coll_elements try: import types @@ -242,8 +243,17 @@ return getattr(x, '__module__', None) == BUILTINS_MODULE_NAME +def is_numpy(x): + if not getattr(x, '__module__', None) == 'numpy': + return False + type_name = x.__name__ + return type_name == 'dtype' or type_name == 'bool_' or type_name == 'str_' or 'int' in type_name or 'uint' in type_name \ + or 'float' in type_name or 'complex' in type_name + + def should_evaluate_full_value(val): - return LOAD_VALUES_POLICY == ValuesPolicy.SYNC or (is_builtin(type(val)) and not isinstance(val, (list, tuple, dict))) + return LOAD_VALUES_POLICY == ValuesPolicy.SYNC or ((is_builtin(type(val)) or is_numpy(type(val))) + and not isinstance(val, (list, tuple, dict, set, frozenset))) def frame_vars_to_xml(frame_f_locals, hidden_ns=None): @@ -311,8 +321,10 @@ value = pydevd_resolver.frameResolver.get_frame_name(v) elif v.__class__ in (list, tuple, set, frozenset, dict): - if len(v) > 300: - value = '%s: %s' % (str(v.__class__), '' % (len(v),)) + if len(v) > pydevd_resolver.MAX_ITEMS_TO_HANDLE: + value = '%s: %s' % (str(v.__class__), take_first_n_coll_elements( + v, pydevd_resolver.MAX_ITEMS_TO_HANDLE)) + value = value.rstrip(')]}') + '...' else: value = '%s: %s' % (str(v.__class__), v) else: diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_file_utils.py pycharm-2019.1/helpers/pydev/pydevd_file_utils.py --- pycharm-2018.3.5/helpers/pydev/pydevd_file_utils.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_file_utils.py 2019-03-19 14:23:58.000000000 +0000 @@ -389,12 +389,28 @@ setup_client_server_paths(PATHS_FROM_ECLIPSE_TO_PYTHON) + +def _is_int(filename): + # isdigit() doesn't support negative numbers + try: + int(filename) + return True + except: + return False + +def is_real_file(filename): + # Check for Jupyter cells + return not _is_int(filename) and not filename.startswith(" #ifndef offsetof @@ -196,6 +196,103 @@ #undef BASE #undef MASK #endif +#ifndef __has_attribute + #define __has_attribute(x) 0 +#endif +#ifndef __has_cpp_attribute + #define __has_cpp_attribute(x) 0 +#endif +#ifndef CYTHON_RESTRICT + #if defined(__GNUC__) + #define CYTHON_RESTRICT __restrict__ + #elif defined(_MSC_VER) && _MSC_VER >= 1400 + #define CYTHON_RESTRICT __restrict + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_RESTRICT restrict + #else + #define CYTHON_RESTRICT + #endif +#endif +#ifndef CYTHON_UNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +#endif +#ifndef CYTHON_MAYBE_UNUSED_VAR +# if defined(__cplusplus) + template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } +# else +# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) +# endif +#endif +#ifndef CYTHON_NCP_UNUSED +# if CYTHON_COMPILING_IN_CPYTHON +# define CYTHON_NCP_UNUSED +# else +# define CYTHON_NCP_UNUSED CYTHON_UNUSED +# endif +#endif +#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) +#ifdef _MSC_VER + #ifndef _MSC_STDINT_H_ + #if _MSC_VER < 1300 + typedef unsigned char uint8_t; + typedef unsigned int uint32_t; + #else + typedef unsigned __int8 uint8_t; + typedef unsigned __int32 uint32_t; + #endif + #endif +#else + #include +#endif +#ifndef CYTHON_FALLTHROUGH + #if defined(__cplusplus) && __cplusplus >= 201103L + #if __has_cpp_attribute(fallthrough) + #define CYTHON_FALLTHROUGH [[fallthrough]] + #elif __has_cpp_attribute(clang::fallthrough) + #define CYTHON_FALLTHROUGH [[clang::fallthrough]] + #elif __has_cpp_attribute(gnu::fallthrough) + #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] + #endif + #endif + #ifndef CYTHON_FALLTHROUGH + #if __has_attribute(fallthrough) + #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) + #else + #define CYTHON_FALLTHROUGH + #endif + #endif + #if defined(__clang__ ) && defined(__apple_build_version__) + #if __apple_build_version__ < 7000000 + #undef CYTHON_FALLTHROUGH + #define CYTHON_FALLTHROUGH + #endif + #endif +#endif + +#ifndef CYTHON_INLINE + #if defined(__clang__) + #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) + #elif defined(__GNUC__) + #define CYTHON_INLINE __inline__ + #elif defined(_MSC_VER) + #define CYTHON_INLINE __inline + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_INLINE inline + #else + #define CYTHON_INLINE + #endif +#endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) #define Py_OptimizeFlag 0 #endif @@ -224,12 +321,12 @@ #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif -#if PY_VERSION_HEX < 0x030700A0 || !defined(METH_FASTCALL) +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject **args, Py_ssize_t nargs); - typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject **args, + typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); + typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); #else #define __Pyx_PyCFunctionFast _PyCFunctionFast @@ -241,6 +338,18 @@ #else #define __Pyx_PyFastCFunction_Check(func) 0 #endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) + #define PyObject_Malloc(s) PyMem_Malloc(s) + #define PyObject_Free(p) PyMem_Free(p) + #define PyObject_Realloc(p) PyMem_Realloc(p) +#endif +#if CYTHON_COMPILING_IN_PYSTON + #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) +#else + #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) +#endif #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #elif PY_VERSION_HEX >= 0x03060000 @@ -250,6 +359,36 @@ #else #define __Pyx_PyThreadState_Current _PyThreadState_Current #endif +#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) +#include "pythread.h" +#define Py_tss_NEEDS_INIT 0 +typedef int Py_tss_t; +static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { + *key = PyThread_create_key(); + return 0; // PyThread_create_key reports success always +} +static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { + Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); + *key = Py_tss_NEEDS_INIT; + return key; +} +static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { + PyObject_Free(key); +} +static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { + return *key != Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { + PyThread_delete_key(*key); + *key = Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { + return PyThread_set_key_value(*key, value); +} +static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { + return PyThread_get_key_value(*key); +} +#endif // TSS (Thread Specific Storage) API #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else @@ -262,6 +401,11 @@ #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS +#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) +#else +#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) +#endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ @@ -306,18 +450,6 @@ #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) - #define PyObject_Malloc(s) PyMem_Malloc(s) - #define PyObject_Free(p) PyMem_Free(p) - #define PyObject_Realloc(p) PyMem_Realloc(p) -#endif -#if CYTHON_COMPILING_IN_PYSTON - #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) -#else - #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) -#endif #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 @@ -334,6 +466,7 @@ #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact + #define PyObject_Unicode PyObject_Str #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) @@ -345,7 +478,11 @@ #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) +#if CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) +#else + #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) +#endif #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type @@ -380,16 +517,10 @@ #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func)) + #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) #else #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) #endif -#ifndef __has_attribute - #define __has_attribute(x) 0 -#endif -#ifndef __has_cpp_attribute - #define __has_cpp_attribute(x) 0 -#endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods @@ -407,96 +538,6 @@ unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #endif -#ifndef CYTHON_RESTRICT - #if defined(__GNUC__) - #define CYTHON_RESTRICT __restrict__ - #elif defined(_MSC_VER) && _MSC_VER >= 1400 - #define CYTHON_RESTRICT __restrict - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_RESTRICT restrict - #else - #define CYTHON_RESTRICT - #endif -#endif -#ifndef CYTHON_UNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -#endif -#ifndef CYTHON_MAYBE_UNUSED_VAR -# if defined(__cplusplus) - template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } -# else -# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) -# endif -#endif -#ifndef CYTHON_NCP_UNUSED -# if CYTHON_COMPILING_IN_CPYTHON -# define CYTHON_NCP_UNUSED -# else -# define CYTHON_NCP_UNUSED CYTHON_UNUSED -# endif -#endif -#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) -#ifdef _MSC_VER - #ifndef _MSC_STDINT_H_ - #if _MSC_VER < 1300 - typedef unsigned char uint8_t; - typedef unsigned int uint32_t; - #else - typedef unsigned __int8 uint8_t; - typedef unsigned __int32 uint32_t; - #endif - #endif -#else - #include -#endif -#ifndef CYTHON_FALLTHROUGH - #if defined(__cplusplus) && __cplusplus >= 201103L - #if __has_cpp_attribute(fallthrough) - #define CYTHON_FALLTHROUGH [[fallthrough]] - #elif __has_cpp_attribute(clang::fallthrough) - #define CYTHON_FALLTHROUGH [[clang::fallthrough]] - #elif __has_cpp_attribute(gnu::fallthrough) - #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] - #endif - #endif - #ifndef CYTHON_FALLTHROUGH - #if __has_attribute(fallthrough) - #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) - #else - #define CYTHON_FALLTHROUGH - #endif - #endif - #if defined(__clang__ ) && defined(__apple_build_version__) - #if __apple_build_version__ < 7000000 - #undef CYTHON_FALLTHROUGH - #define CYTHON_FALLTHROUGH - #endif - #endif -#endif - -#ifndef CYTHON_INLINE - #if defined(__clang__) - #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) - #elif defined(__GNUC__) - #define CYTHON_INLINE __inline__ - #elif defined(_MSC_VER) - #define CYTHON_INLINE __inline - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_INLINE inline - #else - #define CYTHON_INLINE - #endif -#endif #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES @@ -533,6 +574,7 @@ #define __PYX_HAVE___pydevd_frame_eval__pydevd_frame_evaluator #define __PYX_HAVE_API___pydevd_frame_eval__pydevd_frame_evaluator +/* Early includes */ #include "frameobject.h" #include "code.h" #include "pystate.h" @@ -621,7 +663,7 @@ #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -#define __Pyx_PyBool_FromLong(b) ((b) ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False)) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ @@ -729,7 +771,7 @@ static PyObject *__pyx_m = NULL; static PyObject *__pyx_d; static PyObject *__pyx_b; -static PyObject *__pyx_cython_runtime; +static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; @@ -811,16 +853,7 @@ /* PyObjectGetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_getattro)) - return tp->tp_getattro(obj, attr_name); -#if PY_MAJOR_VERSION < 3 - if (likely(tp->tp_getattr)) - return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); -#endif - return PyObject_GetAttr(obj, attr_name); -} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif @@ -833,17 +866,8 @@ /* PyObjectSetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS -#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o,n,NULL) -static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_setattro)) - return tp->tp_setattro(obj, attr_name, value); -#if PY_MAJOR_VERSION < 3 - if (likely(tp->tp_setattr)) - return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value); -#endif - return PyObject_SetAttr(obj, attr_name, value); -} +#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) +static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value); #else #define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n) #define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) @@ -1018,6 +1042,13 @@ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck); +/* ObjectGetItem.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key); +#else +#define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) +#endif + /* RaiseTooManyValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); @@ -1064,6 +1095,17 @@ /* ImportFrom.proto */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); +/* SetNameInClass.proto */ +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 +#define __Pyx_SetNameInClass(ns, name, value)\ + (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value)) +#elif CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_SetNameInClass(ns, name, value)\ + (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value)) +#else +#define __Pyx_SetNameInClass(ns, name, value) PyObject_SetItem(ns, name, value) +#endif + /* CalculateMetaclass.proto */ static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases); @@ -1122,6 +1164,7 @@ #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) #endif +#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); @@ -1300,13 +1343,14 @@ static PyObject *__pyx_codeobj__6; static PyObject *__pyx_codeobj__8; static PyObject *__pyx_codeobj__10; +/* Late includes */ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":28 - * - * + * + * * def is_use_code_extra(): # <<<<<<<<<<<<<< * return UseCodeExtraHolder.use_code_extra - * + * */ /* Python wrapper */ @@ -1331,11 +1375,11 @@ __Pyx_RefNannySetupContext("is_use_code_extra", 0); /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":29 - * + * * def is_use_code_extra(): * return UseCodeExtraHolder.use_code_extra # <<<<<<<<<<<<<< - * - * + * + * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_UseCodeExtraHolder); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) @@ -1348,11 +1392,11 @@ goto __pyx_L0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":28 - * - * + * + * * def is_use_code_extra(): # <<<<<<<<<<<<<< * return UseCodeExtraHolder.use_code_extra - * + * */ /* function exit code */ @@ -1368,11 +1412,11 @@ } /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":33 - * + * * # enable using `co_extra` field in order to cache frames without breakpoints * def enable_cache_frames_without_breaks(new_value): # <<<<<<<<<<<<<< * UseCodeExtraHolder.use_code_extra = new_value - * + * */ /* Python wrapper */ @@ -1399,8 +1443,8 @@ * # enable using `co_extra` field in order to cache frames without breakpoints * def enable_cache_frames_without_breaks(new_value): * UseCodeExtraHolder.use_code_extra = new_value # <<<<<<<<<<<<<< - * - * + * + * */ __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_UseCodeExtraHolder); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -1408,11 +1452,11 @@ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":33 - * + * * # enable using `co_extra` field in order to cache frames without breakpoints * def enable_cache_frames_without_breaks(new_value): # <<<<<<<<<<<<<< * UseCodeExtraHolder.use_code_extra = new_value - * + * */ /* function exit code */ @@ -1429,11 +1473,11 @@ } /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":37 - * - * + * + * * cpdef dummy_trace_dispatch(frame, str event, arg): # <<<<<<<<<<<<<< * return None - * + * */ static PyObject *__pyx_pw_18_pydevd_frame_eval_22pydevd_frame_evaluator_5dummy_trace_dispatch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ @@ -1443,23 +1487,22 @@ __Pyx_RefNannySetupContext("dummy_trace_dispatch", 0); /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":38 - * + * * cpdef dummy_trace_dispatch(frame, str event, arg): * return None # <<<<<<<<<<<<<< - * - * + * + * */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_None); - __pyx_r = Py_None; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":37 - * - * + * + * * cpdef dummy_trace_dispatch(frame, str event, arg): # <<<<<<<<<<<<<< * return None - * + * */ /* function exit code */ @@ -1497,17 +1540,17 @@ kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_frame)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_event)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("dummy_trace_dispatch", 1, 3, 3, 1); __PYX_ERR(0, 37, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: - if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arg)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("dummy_trace_dispatch", 1, 3, 3, 2); __PYX_ERR(0, 37, __pyx_L3_error) } @@ -1570,8 +1613,8 @@ } /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":41 - * - * + * + * * cdef PyObject* get_bytecode_while_frame_eval(PyFrameObject *frame_obj, int exc): # <<<<<<<<<<<<<< * frame = frame_obj * cdef str filepath = frame.f_code.co_filename @@ -1626,7 +1669,7 @@ __Pyx_RefNannySetupContext("get_bytecode_while_frame_eval", 0); /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":42 - * + * * cdef PyObject* get_bytecode_while_frame_eval(PyFrameObject *frame_obj, int exc): * frame = frame_obj # <<<<<<<<<<<<<< * cdef str filepath = frame.f_code.co_filename @@ -1676,7 +1719,7 @@ * cdef void* extra = NULL * cdef int* extra_value = NULL # <<<<<<<<<<<<<< * cdef int thread_index = -1 - * + * */ __pyx_v_extra_value = NULL; @@ -1684,14 +1727,14 @@ * cdef void* extra = NULL * cdef int* extra_value = NULL * cdef int thread_index = -1 # <<<<<<<<<<<<<< - * + * * if is_use_code_extra is None or AVOID_RECURSION is None: */ __pyx_v_thread_index = -1; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":49 * cdef int thread_index = -1 - * + * * if is_use_code_extra is None or AVOID_RECURSION is None: # <<<<<<<<<<<<<< * # Sometimes during process shutdown these global variables become None * return _PyEval_EvalFrameDefault(frame_obj, exc) @@ -1719,7 +1762,7 @@ * if is_use_code_extra is None or AVOID_RECURSION is None: * # Sometimes during process shutdown these global variables become None * return _PyEval_EvalFrameDefault(frame_obj, exc) # <<<<<<<<<<<<<< - * + * * if is_use_code_extra(): */ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc); @@ -1727,7 +1770,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":49 * cdef int thread_index = -1 - * + * * if is_use_code_extra is None or AVOID_RECURSION is None: # <<<<<<<<<<<<<< * # Sometimes during process shutdown these global variables become None * return _PyEval_EvalFrameDefault(frame_obj, exc) @@ -1736,7 +1779,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":53 * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * * if is_use_code_extra(): # <<<<<<<<<<<<<< * extra = PyMem_Malloc(sizeof(int)) * try: @@ -1766,7 +1809,7 @@ if (__pyx_t_3) { /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":54 - * + * * if is_use_code_extra(): * extra = PyMem_Malloc(sizeof(int)) # <<<<<<<<<<<<<< * try: @@ -1864,7 +1907,7 @@ */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_frame, __pyx_n_s_f_code); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - _PyCode_GetExtra(((PyObject *)__pyx_t_2), __pyx_v_thread_index, (&__pyx_v_extra)); + (void)(_PyCode_GetExtra(((PyObject *)__pyx_t_2), __pyx_v_thread_index, (&__pyx_v_extra))); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":61 @@ -1891,7 +1934,7 @@ * extra_value = extra * if extra_value[0] == NO_BREAKS_IN_FRAME: # <<<<<<<<<<<<<< * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * */ __pyx_t_2 = __Pyx_PyInt_From_int((__pyx_v_extra_value[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -1908,7 +1951,7 @@ * extra_value = extra * if extra_value[0] == NO_BREAKS_IN_FRAME: * return _PyEval_EvalFrameDefault(frame_obj, exc) # <<<<<<<<<<<<<< - * + * * for file in AVOID_RECURSION: */ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc); @@ -1919,7 +1962,7 @@ * extra_value = extra * if extra_value[0] == NO_BREAKS_IN_FRAME: # <<<<<<<<<<<<<< * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * */ } @@ -1943,7 +1986,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":53 * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * * if is_use_code_extra(): # <<<<<<<<<<<<<< * extra = PyMem_Malloc(sizeof(int)) * try: @@ -1952,7 +1995,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":66 * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * * for file in AVOID_RECURSION: # <<<<<<<<<<<<<< * # we can't call any other function without this check, because we can get stack overflow * for path_separator in ('/', '\\'): @@ -2043,7 +2086,7 @@ * if filepath.endswith(path_separator + file): * skip_file = True # <<<<<<<<<<<<<< * break - * + * */ __pyx_v_skip_file = 1; @@ -2051,7 +2094,7 @@ * if filepath.endswith(path_separator + file): * skip_file = True * break # <<<<<<<<<<<<<< - * + * * if not skip_file: */ goto __pyx_L19_break; @@ -2078,7 +2121,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":66 * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * * for file in AVOID_RECURSION: # <<<<<<<<<<<<<< * # we can't call any other function without this check, because we can get stack overflow * for path_separator in ('/', '\\'): @@ -2088,7 +2131,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":73 * break - * + * * if not skip_file: # <<<<<<<<<<<<<< * try: * t = threading.currentThread() @@ -2097,7 +2140,7 @@ if (__pyx_t_3) { /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":74 - * + * * if not skip_file: * try: # <<<<<<<<<<<<<< * t = threading.currentThread() @@ -2146,7 +2189,7 @@ __pyx_t_1 = 0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":74 - * + * * if not skip_file: * try: # <<<<<<<<<<<<<< * t = threading.currentThread() @@ -2167,7 +2210,7 @@ * t = threading.currentThread() * except: # <<<<<<<<<<<<<< * skip_file = True - * + * */ /*except:*/ { __Pyx_AddTraceback("_pydevd_frame_eval.pydevd_frame_evaluator.get_bytecode_while_frame_eval", __pyx_clineno, __pyx_lineno, __pyx_filename); @@ -2180,7 +2223,7 @@ * t = threading.currentThread() * except: * skip_file = True # <<<<<<<<<<<<<< - * + * * if not skip_file: */ __pyx_v_skip_file = 1; @@ -2192,7 +2235,7 @@ __pyx_L24_except_error:; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":74 - * + * * if not skip_file: * try: # <<<<<<<<<<<<<< * t = threading.currentThread() @@ -2213,7 +2256,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":73 * break - * + * * if not skip_file: # <<<<<<<<<<<<<< * try: * t = threading.currentThread() @@ -2222,7 +2265,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":79 * skip_file = True - * + * * if not skip_file: # <<<<<<<<<<<<<< * try: * additional_info = t.additional_info @@ -2231,7 +2274,7 @@ if (__pyx_t_3) { /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":80 - * + * * if not skip_file: * try: # <<<<<<<<<<<<<< * additional_info = t.additional_info @@ -2268,7 +2311,7 @@ */ __pyx_t_3 = (__pyx_v_additional_info == Py_None); __pyx_t_4 = (__pyx_t_3 != 0); - if (__pyx_t_4) { + if (unlikely(__pyx_t_4)) { /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":83 * additional_info = t.additional_info @@ -2293,7 +2336,7 @@ } /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":80 - * + * * if not skip_file: * try: # <<<<<<<<<<<<<< * additional_info = t.additional_info @@ -2361,7 +2404,7 @@ * # request `co_extra` inside every new thread * thread_index = _PyEval_RequestCodeExtraIndex(PyMem_Free) # <<<<<<<<<<<<<< * UseCodeExtraHolder.local.index = thread_index - * + * */ __pyx_v_thread_index = _PyEval_RequestCodeExtraIndex(PyMem_Free); @@ -2369,7 +2412,7 @@ * # request `co_extra` inside every new thread * thread_index = _PyEval_RequestCodeExtraIndex(PyMem_Free) * UseCodeExtraHolder.local.index = thread_index # <<<<<<<<<<<<<< - * + * * if additional_info.is_tracing or getattr(t, 'pydev_do_not_trace', None): */ __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_thread_index); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 88, __pyx_L33_except_error) @@ -2390,7 +2433,7 @@ __pyx_L33_except_error:; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":80 - * + * * if not skip_file: * try: # <<<<<<<<<<<<<< * additional_info = t.additional_info @@ -2411,10 +2454,10 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":90 * UseCodeExtraHolder.local.index = thread_index - * + * * if additional_info.is_tracing or getattr(t, 'pydev_do_not_trace', None): # <<<<<<<<<<<<<< * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_additional_info, __pyx_n_s_is_tracing); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -2435,10 +2478,10 @@ if (__pyx_t_4) { /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":91 - * + * * if additional_info.is_tracing or getattr(t, 'pydev_do_not_trace', None): * return _PyEval_EvalFrameDefault(frame_obj, exc) # <<<<<<<<<<<<<< - * + * * additional_info.is_tracing = True */ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc); @@ -2446,16 +2489,16 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":90 * UseCodeExtraHolder.local.index = thread_index - * + * * if additional_info.is_tracing or getattr(t, 'pydev_do_not_trace', None): # <<<<<<<<<<<<<< * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * */ } /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":93 * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * * additional_info.is_tracing = True # <<<<<<<<<<<<<< * try: * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] @@ -2463,7 +2506,7 @@ if (__Pyx_PyObject_SetAttrStr(__pyx_v_additional_info, __pyx_n_s_is_tracing, Py_True) < 0) __PYX_ERR(0, 93, __pyx_L1_error) /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":94 - * + * * additional_info.is_tracing = True * try: # <<<<<<<<<<<<<< * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] @@ -2492,7 +2535,7 @@ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_co_filename); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 95, __pyx_L43_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyObject_GetItem(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 95, __pyx_L43_error) + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 95, __pyx_L43_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -2500,7 +2543,7 @@ __pyx_t_2 = 0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":94 - * + * * additional_info.is_tracing = True * try: # <<<<<<<<<<<<<< * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] @@ -2524,7 +2567,7 @@ * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] * except: # <<<<<<<<<<<<<< * abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame) - * + * */ /*except:*/ { __Pyx_AddTraceback("_pydevd_frame_eval.pydevd_frame_evaluator.get_bytecode_while_frame_eval", __pyx_clineno, __pyx_lineno, __pyx_filename); @@ -2537,7 +2580,7 @@ * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] * except: * abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame) # <<<<<<<<<<<<<< - * + * * file_type = get_file_type(abs_path_real_path_and_base[-1]) #we don't want to debug anything related to pydevd */ __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_get_abs_path_real_path_and_base); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 97, __pyx_L45_except_error) @@ -2595,7 +2638,7 @@ __pyx_L45_except_error:; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":94 - * + * * additional_info.is_tracing = True * try: # <<<<<<<<<<<<<< * abs_path_real_path_and_base = NORM_PATHS_AND_BASE_CONTAINER[frame.f_code.co_filename] @@ -2616,7 +2659,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":99 * abs_path_real_path_and_base = get_abs_path_real_path_and_base_from_frame(frame) - * + * * file_type = get_file_type(abs_path_real_path_and_base[-1]) #we don't want to debug anything related to pydevd # <<<<<<<<<<<<<< * if file_type is not None: * additional_info.is_tracing = False @@ -2675,7 +2718,7 @@ __pyx_t_1 = 0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":100 - * + * * file_type = get_file_type(abs_path_real_path_and_base[-1]) #we don't want to debug anything related to pydevd * if file_type is not None: # <<<<<<<<<<<<<< * additional_info.is_tracing = False @@ -2690,7 +2733,7 @@ * if file_type is not None: * additional_info.is_tracing = False # <<<<<<<<<<<<<< * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_additional_info, __pyx_n_s_is_tracing, Py_False) < 0) __PYX_ERR(0, 101, __pyx_L1_error) @@ -2698,14 +2741,14 @@ * if file_type is not None: * additional_info.is_tracing = False * return _PyEval_EvalFrameDefault(frame_obj, exc) # <<<<<<<<<<<<<< - * + * * was_break = False */ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc); goto __pyx_L0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":100 - * + * * file_type = get_file_type(abs_path_real_path_and_base[-1]) #we don't want to debug anything related to pydevd * if file_type is not None: # <<<<<<<<<<<<<< * additional_info.is_tracing = False @@ -2715,7 +2758,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":104 * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * * was_break = False # <<<<<<<<<<<<<< * main_debugger = get_global_debugger() * breakpoints = main_debugger.breakpoints.get(abs_path_real_path_and_base[1]) @@ -2723,7 +2766,7 @@ __pyx_v_was_break = 0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":105 - * + * * was_break = False * main_debugger = get_global_debugger() # <<<<<<<<<<<<<< * breakpoints = main_debugger.breakpoints.get(abs_path_real_path_and_base[1]) @@ -2946,11 +2989,7 @@ } if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); @@ -2958,11 +2997,11 @@ } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); } else { - __pyx_t_6 = PyList_GET_ITEM(sequence, 0); - __pyx_t_14 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 0); + __pyx_t_14 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_14); @@ -3017,7 +3056,7 @@ * if code_object not in breakpoint.code_objects: * # This check is needed for generator functions, because after each yield the new frame is created */ - __pyx_t_1 = PyObject_GetItem(__pyx_v_breakpoints, __pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_breakpoints, __pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_breakpoint, __pyx_t_1); __pyx_t_1 = 0; @@ -3106,11 +3145,7 @@ __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; - #if !CYTHON_COMPILING_IN_PYPY - Py_ssize_t size = Py_SIZE(sequence); - #else - Py_ssize_t size = PySequence_Size(sequence); - #endif + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); @@ -3118,11 +3153,11 @@ } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_14 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_14 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); } else { - __pyx_t_14 = PyList_GET_ITEM(sequence, 0); - __pyx_t_15 = PyList_GET_ITEM(sequence, 1); + __pyx_t_14 = PyList_GET_ITEM(sequence, 0); + __pyx_t_15 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(__pyx_t_15); @@ -3502,7 +3537,7 @@ * bp.code_objects.add(frame.f_code) * else: * if main_debugger.has_plugin_line_breaks: # <<<<<<<<<<<<<< - * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame) + * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame, additional_info) * if can_not_skip: */ /*else*/ { @@ -3515,7 +3550,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":132 * else: * if main_debugger.has_plugin_line_breaks: - * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame) # <<<<<<<<<<<<<< + * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame, additional_info) # <<<<<<<<<<<<<< * if can_not_skip: * was_break = True */ @@ -3538,22 +3573,22 @@ } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_15)) { - PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_main_debugger, Py_None, __pyx_v_frame}; - __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 132, __pyx_L1_error) + PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, Py_None, __pyx_v_frame, __pyx_v_additional_info}; + __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_16); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) { - PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_main_debugger, Py_None, __pyx_v_frame}; - __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 132, __pyx_L1_error) + PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_v_main_debugger, Py_None, __pyx_v_frame, __pyx_v_additional_info}; + __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_16); } else #endif { - __pyx_t_6 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(4+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = NULL; @@ -3567,6 +3602,9 @@ __Pyx_INCREF(__pyx_v_frame); __Pyx_GIVEREF(__pyx_v_frame); PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_10, __pyx_v_frame); + __Pyx_INCREF(__pyx_v_additional_info); + __Pyx_GIVEREF(__pyx_v_additional_info); + PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_10, __pyx_v_additional_info); __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_6, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; @@ -3577,7 +3615,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":133 * if main_debugger.has_plugin_line_breaks: - * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame) + * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame, additional_info) * if can_not_skip: # <<<<<<<<<<<<<< * was_break = True * main_debugger.SetTrace(main_debugger.trace_dispatch) @@ -3586,7 +3624,7 @@ if (__pyx_t_3) { /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":134 - * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame) + * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame, additional_info) * if can_not_skip: * was_break = True # <<<<<<<<<<<<<< * main_debugger.SetTrace(main_debugger.trace_dispatch) @@ -3599,7 +3637,7 @@ * was_break = True * main_debugger.SetTrace(main_debugger.trace_dispatch) # <<<<<<<<<<<<<< * main_debugger.set_trace_for_frame_and_parents(frame) - * + * */ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_SetTrace); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); @@ -3657,7 +3695,7 @@ * was_break = True * main_debugger.SetTrace(main_debugger.trace_dispatch) * main_debugger.set_trace_for_frame_and_parents(frame) # <<<<<<<<<<<<<< - * + * * if not was_break: */ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_main_debugger, __pyx_n_s_set_trace_for_frame_and_parents); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 136, __pyx_L1_error) @@ -3709,7 +3747,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":133 * if main_debugger.has_plugin_line_breaks: - * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame) + * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame, additional_info) * if can_not_skip: # <<<<<<<<<<<<<< * was_break = True * main_debugger.SetTrace(main_debugger.trace_dispatch) @@ -3720,7 +3758,7 @@ * bp.code_objects.add(frame.f_code) * else: * if main_debugger.has_plugin_line_breaks: # <<<<<<<<<<<<<< - * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame) + * can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame, additional_info) * if can_not_skip: */ } @@ -3729,7 +3767,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":138 * main_debugger.set_trace_for_frame_and_parents(frame) - * + * * if not was_break: # <<<<<<<<<<<<<< * extra_value = PyMem_Malloc(sizeof(int)) * extra_value[0] = NO_BREAKS_IN_FRAME @@ -3738,7 +3776,7 @@ if (__pyx_t_3) { /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":139 - * + * * if not was_break: * extra_value = PyMem_Malloc(sizeof(int)) # <<<<<<<<<<<<<< * extra_value[0] = NO_BREAKS_IN_FRAME @@ -3839,7 +3877,7 @@ * pass * if thread_index != -1: # <<<<<<<<<<<<<< * _PyCode_SetExtra( code_object, thread_index, extra_value) - * + * */ __pyx_t_3 = ((__pyx_v_thread_index != -1L) != 0); if (__pyx_t_3) { @@ -3848,23 +3886,23 @@ * pass * if thread_index != -1: * _PyCode_SetExtra( code_object, thread_index, extra_value) # <<<<<<<<<<<<<< - * + * * additional_info.is_tracing = False */ - _PyCode_SetExtra(((PyObject *)__pyx_v_code_object), __pyx_v_thread_index, __pyx_v_extra_value); + (void)(_PyCode_SetExtra(((PyObject *)__pyx_v_code_object), __pyx_v_thread_index, __pyx_v_extra_value)); /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":145 * except: * pass * if thread_index != -1: # <<<<<<<<<<<<<< * _PyCode_SetExtra( code_object, thread_index, extra_value) - * + * */ } /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":138 * main_debugger.set_trace_for_frame_and_parents(frame) - * + * * if not was_break: # <<<<<<<<<<<<<< * extra_value = PyMem_Malloc(sizeof(int)) * extra_value[0] = NO_BREAKS_IN_FRAME @@ -3873,16 +3911,16 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":148 * _PyCode_SetExtra( code_object, thread_index, extra_value) - * + * * additional_info.is_tracing = False # <<<<<<<<<<<<<< * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_additional_info, __pyx_n_s_is_tracing, Py_False) < 0) __PYX_ERR(0, 148, __pyx_L1_error) /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":79 * skip_file = True - * + * * if not skip_file: # <<<<<<<<<<<<<< * try: * additional_info = t.additional_info @@ -3890,18 +3928,18 @@ } /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":149 - * + * * additional_info.is_tracing = False * return _PyEval_EvalFrameDefault(frame_obj, exc) # <<<<<<<<<<<<<< - * + * * def frame_eval_func(): */ __pyx_r = _PyEval_EvalFrameDefault(__pyx_v_frame_obj, __pyx_v_exc); goto __pyx_L0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":41 - * - * + * + * * cdef PyObject* get_bytecode_while_frame_eval(PyFrameObject *frame_obj, int exc): # <<<<<<<<<<<<<< * frame = frame_obj * cdef str filepath = frame.f_code.co_filename @@ -3944,7 +3982,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":151 * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * * def frame_eval_func(): # <<<<<<<<<<<<<< * cdef PyThreadState *state = PyThreadState_Get() * state.interp.eval_frame = get_bytecode_while_frame_eval @@ -3976,7 +4014,7 @@ __Pyx_RefNannySetupContext("frame_eval_func", 0); /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":152 - * + * * def frame_eval_func(): * cdef PyThreadState *state = PyThreadState_Get() # <<<<<<<<<<<<<< * state.interp.eval_frame = get_bytecode_while_frame_eval @@ -3997,7 +4035,7 @@ * state.interp.eval_frame = get_bytecode_while_frame_eval * global dummy_tracing_holder * dummy_tracing_holder.set_trace_func(dummy_trace_dispatch) # <<<<<<<<<<<<<< - * + * * def stop_frame_eval(): */ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_dummy_tracing_holder); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error) @@ -4057,7 +4095,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":151 * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * * def frame_eval_func(): # <<<<<<<<<<<<<< * cdef PyThreadState *state = PyThreadState_Get() * state.interp.eval_frame = get_bytecode_while_frame_eval @@ -4082,7 +4120,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":157 * dummy_tracing_holder.set_trace_func(dummy_trace_dispatch) - * + * * def stop_frame_eval(): # <<<<<<<<<<<<<< * cdef PyThreadState *state = PyThreadState_Get() * state.interp.eval_frame = _PyEval_EvalFrameDefault @@ -4109,7 +4147,7 @@ __Pyx_RefNannySetupContext("stop_frame_eval", 0); /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":158 - * + * * def stop_frame_eval(): * cdef PyThreadState *state = PyThreadState_Get() # <<<<<<<<<<<<<< * state.interp.eval_frame = _PyEval_EvalFrameDefault @@ -4125,7 +4163,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":157 * dummy_tracing_holder.set_trace_func(dummy_trace_dispatch) - * + * * def stop_frame_eval(): # <<<<<<<<<<<<<< * cdef PyThreadState *state = PyThreadState_Get() * state.interp.eval_frame = _PyEval_EvalFrameDefault @@ -4273,20 +4311,20 @@ __Pyx_GIVEREF(__pyx_tuple__3); /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":28 - * - * + * + * * def is_use_code_extra(): # <<<<<<<<<<<<<< * return UseCodeExtraHolder.use_code_extra - * + * */ __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pydevd_frame_eval_pydevd_frame_3, __pyx_n_s_is_use_code_extra, 28, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 28, __pyx_L1_error) /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":33 - * + * * # enable using `co_extra` field in order to cache frames without breakpoints * def enable_cache_frames_without_breaks(new_value): # <<<<<<<<<<<<<< * UseCodeExtraHolder.use_code_extra = new_value - * + * */ __pyx_tuple__5 = PyTuple_Pack(1, __pyx_n_s_new_value); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); @@ -4295,7 +4333,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":151 * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * * def frame_eval_func(): # <<<<<<<<<<<<<< * cdef PyThreadState *state = PyThreadState_Get() * state.interp.eval_frame = get_bytecode_while_frame_eval @@ -4307,7 +4345,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":157 * dummy_tracing_holder.set_trace_func(dummy_trace_dispatch) - * + * * def stop_frame_eval(): # <<<<<<<<<<<<<< * cdef PyThreadState *state = PyThreadState_Get() * state.interp.eval_frame = _PyEval_EvalFrameDefault @@ -4332,12 +4370,101 @@ return -1; } +static int __Pyx_modinit_global_init_code(void); /*proto*/ +static int __Pyx_modinit_variable_export_code(void); /*proto*/ +static int __Pyx_modinit_function_export_code(void); /*proto*/ +static int __Pyx_modinit_type_init_code(void); /*proto*/ +static int __Pyx_modinit_type_import_code(void); /*proto*/ +static int __Pyx_modinit_variable_import_code(void); /*proto*/ +static int __Pyx_modinit_function_import_code(void); /*proto*/ + +static int __Pyx_modinit_global_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); + /*--- Variable import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + #if PY_MAJOR_VERSION < 3 -PyMODINIT_FUNC initpydevd_frame_evaluator(void); /*proto*/ -PyMODINIT_FUNC initpydevd_frame_evaluator(void) +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC void +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif #else -PyMODINIT_FUNC PyInit_pydevd_frame_evaluator(void); /*proto*/ -PyMODINIT_FUNC PyInit_pydevd_frame_evaluator(void) +#ifdef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC PyObject * +#else +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#endif +#endif +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (!(defined(__cplusplus)) || (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4))) + #define CYTHON_SMALL_CODE __attribute__((cold)) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + + +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC initpydevd_frame_evaluator(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initpydevd_frame_evaluator(void) +#else +__Pyx_PyMODINIT_FUNC PyInit_pydevd_frame_evaluator(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_pydevd_frame_evaluator(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); @@ -4388,17 +4515,19 @@ __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m && __pyx_m == __pyx_pyinit_module) return 0; + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); #endif #if CYTHON_REFNANNY - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); - if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); - } - #endif - __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_pydevd_frame_evaluator(void)", 0); +__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); +if (!__Pyx_RefNanny) { + PyErr_Clear(); + __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); + if (!__Pyx_RefNanny) + Py_FatalError("failed to import 'refnanny' module"); +} +#endif + __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_pydevd_frame_evaluator(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) @@ -4468,13 +4597,14 @@ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global init code ---*/ - /*--- Variable export code ---*/ - /*--- Function export code ---*/ - /*--- Type init code ---*/ - /*--- Type import code ---*/ - /*--- Variable import code ---*/ - /*--- Function import code ---*/ + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + (void)__Pyx_modinit_type_init_code(); + (void)__Pyx_modinit_type_import_code(); + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) @@ -4613,7 +4743,7 @@ * from _pydevd_frame_eval.pydevd_frame_tracing import pydev_trace_code_wrapper, update_globals_dict, dummy_tracing_holder * from _pydevd_frame_eval.pydevd_modify_bytecode import insert_code # <<<<<<<<<<<<<< * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, NORM_PATHS_AND_BASE_CONTAINER - * + * */ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -4633,7 +4763,7 @@ * from _pydevd_frame_eval.pydevd_frame_tracing import pydev_trace_code_wrapper, update_globals_dict, dummy_tracing_holder * from _pydevd_frame_eval.pydevd_modify_bytecode import insert_code * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, NORM_PATHS_AND_BASE_CONTAINER # <<<<<<<<<<<<<< - * + * * AVOID_RECURSION = [ */ __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error) @@ -4659,7 +4789,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":10 * from pydevd_file_utils import get_abs_path_real_path_and_base_from_frame, NORM_PATHS_AND_BASE_CONTAINER - * + * * AVOID_RECURSION = [ # <<<<<<<<<<<<<< * 'pydevd_additional_thread_info_regular.py', * 'threading.py', @@ -4680,10 +4810,10 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":16 * ] - * + * * get_file_type = DONT_TRACE.get # <<<<<<<<<<<<<< * NO_BREAKS_IN_FRAME = 1 - * + * */ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_DONT_TRACE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -4694,17 +4824,17 @@ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":17 - * + * * get_file_type = DONT_TRACE.get * NO_BREAKS_IN_FRAME = 1 # <<<<<<<<<<<<<< - * - * + * + * */ if (PyDict_SetItem(__pyx_d, __pyx_n_s_NO_BREAKS_IN_FRAME, __pyx_int_1) < 0) __PYX_ERR(0, 17, __pyx_L1_error) /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":20 - * - * + * + * * class UseCodeExtraHolder: # <<<<<<<<<<<<<< * # Use this flag in order to disable co_extra field * use_code_extra = True @@ -4719,14 +4849,14 @@ * # Keep the index of co_extra in a thread-local storage * local = threading.local() */ - if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_use_code_extra, Py_True) < 0) __PYX_ERR(0, 22, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_use_code_extra, Py_True) < 0) __PYX_ERR(0, 22, __pyx_L1_error) /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":24 * use_code_extra = True * # Keep the index of co_extra in a thread-local storage * local = threading.local() # <<<<<<<<<<<<<< * local.index = -1 - * + * */ __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_threading); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); @@ -4751,15 +4881,15 @@ } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_local, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_local, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":25 * # Keep the index of co_extra in a thread-local storage * local = threading.local() * local.index = -1 # <<<<<<<<<<<<<< - * - * + * + * */ __pyx_t_2 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_local); if (unlikely(!__pyx_t_2)) { @@ -4772,8 +4902,8 @@ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":20 - * - * + * + * * class UseCodeExtraHolder: # <<<<<<<<<<<<<< * # Use this flag in order to disable co_extra field * use_code_extra = True @@ -4785,11 +4915,11 @@ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":28 - * - * + * + * * def is_use_code_extra(): # <<<<<<<<<<<<<< * return UseCodeExtraHolder.use_code_extra - * + * */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_18_pydevd_frame_eval_22pydevd_frame_evaluator_1is_use_code_extra, NULL, __pyx_n_s_pydevd_frame_eval_pydevd_frame_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -4797,11 +4927,11 @@ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":33 - * + * * # enable using `co_extra` field in order to cache frames without breakpoints * def enable_cache_frames_without_breaks(new_value): # <<<<<<<<<<<<<< * UseCodeExtraHolder.use_code_extra = new_value - * + * */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_18_pydevd_frame_eval_22pydevd_frame_evaluator_3enable_cache_frames_without_breaks, NULL, __pyx_n_s_pydevd_frame_eval_pydevd_frame_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -4810,7 +4940,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":151 * return _PyEval_EvalFrameDefault(frame_obj, exc) - * + * * def frame_eval_func(): # <<<<<<<<<<<<<< * cdef PyThreadState *state = PyThreadState_Get() * state.interp.eval_frame = get_bytecode_while_frame_eval @@ -4822,7 +4952,7 @@ /* "_pydevd_frame_eval/pydevd_frame_evaluator.pyx":157 * dummy_tracing_holder.set_trace_func(dummy_trace_dispatch) - * + * * def stop_frame_eval(): # <<<<<<<<<<<<<< * cdef PyThreadState *state = PyThreadState_Get() * state.interp.eval_frame = _PyEval_EvalFrameDefault @@ -4887,6 +5017,20 @@ } #endif +/* PyObjectGetAttrStr */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro)) + return tp->tp_getattro(obj, attr_name); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_getattr)) + return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); +#endif + return PyObject_GetAttr(obj, attr_name); +} +#endif + /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); @@ -4905,10 +5049,19 @@ static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { PyObject *result; #if !CYTHON_AVOID_BORROWED_REFS +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 + result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); + if (likely(result)) { + Py_INCREF(result); + } else if (unlikely(PyErr_Occurred())) { + result = NULL; + } else { +#else result = PyDict_GetItem(__pyx_d, name); if (likely(result)) { Py_INCREF(result); } else { +#endif #else result = PyObject_GetItem(__pyx_d, name); if (!result) { @@ -4919,8 +5072,22 @@ return result; } +/* PyObjectSetAttrStr */ + #if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_setattro)) + return tp->tp_setattro(obj, attr_name, value); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_setattr)) + return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value); +#endif + return PyObject_SetAttr(obj, attr_name, value); +} +#endif + /* RaiseArgTupleInvalid */ - static void __Pyx_RaiseArgtupleInvalid( + static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, @@ -4946,7 +5113,7 @@ } /* RaiseDoubleKeywords */ - static void __Pyx_RaiseDoubleKeywordsError( + static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { @@ -4960,7 +5127,7 @@ } /* ParseKeywords */ - static int __Pyx_ParseOptionalKeywords( + static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, @@ -5062,7 +5229,7 @@ } /* ArgTypeTest */ - static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) + static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); @@ -5083,7 +5250,7 @@ } /* PyCFunctionFastCall */ - #if CYTHON_FAST_PYCCALL + #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { PyCFunctionObject *func = (PyCFunctionObject*)func_obj; PyCFunction meth = PyCFunction_GET_FUNCTION(func); @@ -5106,7 +5273,7 @@ #endif /* PyFunctionFastCall */ - #if CYTHON_FAST_PYCALL + #if CYTHON_FAST_PYCALL #include "frameobject.h" static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, PyObject *globals) { @@ -5226,7 +5393,7 @@ #endif /* PyObjectCall */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; ternaryfunc call = func->ob_type->tp_call; @@ -5246,7 +5413,7 @@ #endif /* PyObjectCallMethO */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; @@ -5266,7 +5433,7 @@ #endif /* PyObjectCallOneArg */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_New(1); @@ -5306,7 +5473,7 @@ #endif /* PyObjectCallNoArg */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { @@ -5327,9 +5494,9 @@ #endif /* SaveResetException */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - #if PY_VERSION_HEX >= 0x030700A2 + #if PY_VERSION_HEX >= 0x030700A3 *type = tstate->exc_state.exc_type; *value = tstate->exc_state.exc_value; *tb = tstate->exc_state.exc_traceback; @@ -5344,7 +5511,7 @@ } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; - #if PY_VERSION_HEX >= 0x030700A2 + #if PY_VERSION_HEX >= 0x030700A3 tmp_type = tstate->exc_state.exc_type; tmp_value = tstate->exc_state.exc_value; tmp_tb = tstate->exc_state.exc_traceback; @@ -5366,7 +5533,7 @@ #endif /* PyErrFetchRestore */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; @@ -5390,7 +5557,7 @@ #endif /* bytes_tailmatch */ - static int __Pyx_PyBytes_SingleTailmatch(PyObject* self, PyObject* arg, + static int __Pyx_PyBytes_SingleTailmatch(PyObject* self, PyObject* arg, Py_ssize_t start, Py_ssize_t end, int direction) { const char* self_ptr = PyBytes_AS_STRING(self); Py_ssize_t self_len = PyBytes_GET_SIZE(self); @@ -5465,7 +5632,7 @@ } /* unicode_tailmatch */ - static int __Pyx_PyUnicode_TailmatchTuple(PyObject* s, PyObject* substrings, + static int __Pyx_PyUnicode_TailmatchTuple(PyObject* s, PyObject* substrings, Py_ssize_t start, Py_ssize_t end, int direction) { Py_ssize_t i, count = PyTuple_GET_SIZE(substrings); for (i = 0; i < count; i++) { @@ -5494,7 +5661,7 @@ } /* str_tailmatch */ - static CYTHON_INLINE int __Pyx_PyStr_Tailmatch(PyObject* self, PyObject* arg, Py_ssize_t start, + static CYTHON_INLINE int __Pyx_PyStr_Tailmatch(PyObject* self, PyObject* arg, Py_ssize_t start, Py_ssize_t end, int direction) { if (PY_MAJOR_VERSION < 3) @@ -5504,7 +5671,7 @@ } /* GetException */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) { @@ -5541,7 +5708,7 @@ *value = local_value; *tb = local_tb; #if CYTHON_FAST_THREAD_STATE - #if PY_VERSION_HEX >= 0x030700A2 + #if PY_VERSION_HEX >= 0x030700A3 tmp_type = tstate->exc_state.exc_type; tmp_value = tstate->exc_state.exc_value; tmp_tb = tstate->exc_state.exc_traceback; @@ -5574,12 +5741,12 @@ } /* None */ - static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { + static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } /* RaiseException */ - #if PY_MAJOR_VERSION < 3 + #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare @@ -5738,7 +5905,7 @@ #endif /* PyErrExceptionMatches */ - #if CYTHON_FAST_THREAD_STATE + #if CYTHON_FAST_THREAD_STATE static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(tuple); @@ -5763,7 +5930,7 @@ #endif /* GetAttr */ - static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { + static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { #if CYTHON_USE_TYPE_SLOTS #if PY_MAJOR_VERSION >= 3 if (likely(PyUnicode_Check(n))) @@ -5776,7 +5943,7 @@ } /* GetAttr3 */ - static PyObject *__Pyx_GetAttr3Default(PyObject *d) { + static PyObject *__Pyx_GetAttr3Default(PyObject *d) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) @@ -5791,7 +5958,7 @@ } /* GetItemInt */ - static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { + static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (!j) return NULL; r = PyObject_GetItem(o, j); @@ -5877,21 +6044,50 @@ return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } +/* ObjectGetItem */ + #if CYTHON_USE_TYPE_SLOTS +static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { + PyObject *runerr; + Py_ssize_t key_value; + PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; + if (unlikely(!(m && m->sq_item))) { + PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); + return NULL; + } + key_value = __Pyx_PyIndex_AsSsize_t(index); + if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { + return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); + } + if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { + PyErr_Clear(); + PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); + } + return NULL; +} +static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { + PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; + if (likely(m && m->mp_subscript)) { + return m->mp_subscript(obj, key); + } + return __Pyx_PyObject_GetIndex(obj, key); +} +#endif + /* RaiseTooManyValuesToUnpack */ - static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { + static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } /* RaiseNeedMoreValuesToUnpack */ - static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { + static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", index, (index == 1) ? "" : "s"); } /* IterFinish */ - static CYTHON_INLINE int __Pyx_IterFinish(void) { + static CYTHON_INLINE int __Pyx_IterFinish(void) { #if CYTHON_FAST_THREAD_STATE PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* exc_type = tstate->curexc_type; @@ -5926,7 +6122,7 @@ } /* UnpackItemEndCheck */ - static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { + static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); @@ -5938,7 +6134,7 @@ } /* WriteUnraisableException */ - static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, + static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, int full_traceback, CYTHON_UNUSED int nogil) { PyObject *old_exc, *old_val, *old_tb; @@ -5980,7 +6176,7 @@ } /* Import */ - static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { + static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; @@ -6045,7 +6241,7 @@ } /* ImportFrom */ - static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { + static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Format(PyExc_ImportError, @@ -6059,7 +6255,7 @@ } /* CalculateMetaclass */ - static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { + static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases); for (i=0; i < nbases; i++) { PyTypeObject *tmptype; @@ -6098,7 +6294,7 @@ } /* Py3ClassCreate */ - static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, + static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) { PyObject *ns; if (metaclass) { @@ -6165,18 +6361,21 @@ } /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK + #ifndef CYTHON_CLINE_IN_TRACEBACK static int __Pyx_CLineForTraceback(CYTHON_UNUSED PyThreadState *tstate, int c_line) { PyObject *use_cline; PyObject *ptype, *pvalue, *ptraceback; #if CYTHON_COMPILING_IN_CPYTHON PyObject **cython_runtime_dict; #endif + if (unlikely(!__pyx_cython_runtime)) { + return c_line; + } __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); #if CYTHON_COMPILING_IN_CPYTHON cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); if (likely(cython_runtime_dict)) { - use_cline = PyDict_GetItem(*cython_runtime_dict, __pyx_n_s_cline_in_traceback); + use_cline = __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback); } else #endif { @@ -6202,7 +6401,7 @@ #endif /* CodeObjectCache */ - static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { + static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; @@ -6282,7 +6481,7 @@ } /* AddTraceback */ - #include "compile.h" + #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( @@ -6367,7 +6566,7 @@ } /* CIntFromPyVerify */ - #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) @@ -6389,7 +6588,7 @@ } /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -6420,7 +6619,7 @@ } /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { @@ -6451,7 +6650,7 @@ } /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { + static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) -1, const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 @@ -6640,7 +6839,7 @@ } /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { + static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { const long neg_one = (long) -1, const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 @@ -6829,7 +7028,7 @@ } /* FastTypeChecks */ - #if CYTHON_COMPILING_IN_CPYTHON + #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = a->tp_base; @@ -6884,14 +7083,42 @@ return res; } #endif +static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + assert(PyExceptionClass_Check(exc_type)); + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; ip) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { @@ -6943,7 +7170,7 @@ if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) - PyErr_Clear(); + return -1; ++t; } return 0; @@ -7157,6 +7384,9 @@ Py_DECREF(x); return ival; } +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { + return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); +} static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { return PyInt_FromSize_t(ival); } Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_36_64.cpython-36m-darwin.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_darwin_36_64.cpython-36m-darwin.so differ diff -Nru pycharm-2018.3.5/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator.pyx pycharm-2019.1/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator.pyx --- pycharm-2018.3.5/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator.pyx 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator.pyx 2019-03-19 14:23:58.000000000 +0000 @@ -129,7 +129,7 @@ bp.code_objects.add(frame.f_code) else: if main_debugger.has_plugin_line_breaks: - can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame) + can_not_skip = main_debugger.plugin.can_not_skip(main_debugger, None, frame, additional_info) if can_not_skip: was_break = True main_debugger.SetTrace(main_debugger.trace_dispatch) Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_32.cp36-win32.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_32.cp36-win32.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_64.cp36-win_amd64.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_64.cp36-win_amd64.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_32.cp37-win32.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_32.cp37-win32.pyd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_64.cp37-win_amd64.pyd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/pydev/_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_64.cp37-win_amd64.pyd differ diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_plugins/django_debug.py pycharm-2019.1/helpers/pydev/pydevd_plugins/django_debug.py --- pycharm-2018.3.5/helpers/pydev/pydevd_plugins/django_debug.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_plugins/django_debug.py 2019-03-19 14:23:58.000000000 +0000 @@ -331,7 +331,7 @@ # Django Step Commands #======================================================================================================================= -def can_not_skip(plugin, main_debugger, pydb_frame, frame): +def can_not_skip(plugin, main_debugger, pydb_frame, frame, info): return main_debugger.django_breakpoints and _is_django_render_call(frame) @@ -435,7 +435,7 @@ if suspend_frame: add_exception_to_frame(suspend_frame, (exception, value, trace)) flag = True - thread.additional_info.pydev_message = 'VariableDoesNotExist' + thread.additional_info.pydev_message = 'django-VariableDoesNotExist' suspend_frame.f_back = frame frame = suspend_frame return (flag, frame) diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py pycharm-2019.1/helpers/pydev/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py --- pycharm-2018.3.5/helpers/pydev/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,7 +1,17 @@ -from _pydevd_bundle.pydevd_extension_api import TypeResolveProvider +from _pydevd_bundle.pydevd_constants import IS_PYCHARM +from _pydevd_bundle.pydevd_extension_api import TypeResolveProvider, StrPresentationProvider from _pydevd_bundle.pydevd_resolver import defaultResolver, MAX_ITEMS_TO_HANDLE, TOO_LARGE_ATTR, TOO_LARGE_MSG +from _pydevd_bundle.pydevd_utils import get_var_and_offset from .pydevd_helpers import find_mod_attr +try: + from collections import OrderedDict +except: + OrderedDict = dict + + +DEFAULT_PRECISION = 5 + # ======================================================================================================================= # NdArrayResolver @@ -26,9 +36,16 @@ return False return obj.dtype.kind in 'biufc' + def round_if_possible(self, obj): + try: + return obj.round(DEFAULT_PRECISION) + except TypeError: + return obj + def resolve(self, obj, attribute): if attribute == '__internals__': - return defaultResolver.get_dictionary(obj) + if not IS_PYCHARM: + return defaultResolver.get_dictionary(obj) if attribute == 'min': if self.is_numeric(obj): return obj.min() @@ -56,11 +73,16 @@ setattr(container, TOO_LARGE_ATTR, TOO_LARGE_MSG) break return container + if IS_PYCHARM and attribute == 'array': + container = NdArrayItemsContainer() + container.items = obj + return container return None def get_dictionary(self, obj): ret = dict() - ret['__internals__'] = defaultResolver.get_dictionary(obj) + if not IS_PYCHARM: + ret['__internals__'] = defaultResolver.get_dictionary(obj) if obj.size > 1024 * 1024: ret['min'] = 'ndarray too big, calculating min would slow down debugging' ret['max'] = 'ndarray too big, calculating max would slow down debugging' @@ -74,11 +96,54 @@ ret['shape'] = obj.shape ret['dtype'] = obj.dtype ret['size'] = obj.size - ret['[0:%s] ' % (len(obj))] = list(obj[0:MAX_ITEMS_TO_HANDLE]) + if IS_PYCHARM: + ret['array'] = NdArrayItemsContainer() + else: + ret['[0:%s] ' % (len(obj))] = list(obj[0:MAX_ITEMS_TO_HANDLE]) return ret +class NDArrayStrProvider(object): + def can_provide(self, type_object, type_name): + nd_array = find_mod_attr('numpy', 'ndarray') + return nd_array is not None and issubclass(type_object, nd_array) + + def get_str(self, val): + return str(val[:MAX_ITEMS_TO_HANDLE]) + + +class NdArrayItemsContainerProvider(object): + def can_provide(self, type_object, type_name): + return issubclass(type_object, NdArrayItemsContainer) + + def resolve(self, obj, attribute): + if attribute == '__len__': + return None + return obj.items[int(attribute)] + + def get_dictionary(self, obj): + obj, offset = get_var_and_offset(obj) + + l = len(obj.items) + d = OrderedDict() + + format_str = '%0' + str(int(len(str(l)))) + 'd' + + i = offset + for item in obj.items[offset:offset + MAX_ITEMS_TO_HANDLE]: + d[format_str % i] = item + i += 1 + + if i > MAX_ITEMS_TO_HANDLE + offset: + break + d['__len__'] = l + return d + + import sys if not sys.platform.startswith("java"): TypeResolveProvider.register(NDArrayTypeResolveProvider) + if IS_PYCHARM: + TypeResolveProvider.register(NdArrayItemsContainerProvider) + StrPresentationProvider.register(NDArrayStrProvider) diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_plugins/jinja2_debug.py pycharm-2019.1/helpers/pydev/pydevd_plugins/jinja2_debug.py --- pycharm-2018.3.5/helpers/pydev/pydevd_plugins/jinja2_debug.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_plugins/jinja2_debug.py 2019-03-19 14:23:58.000000000 +0000 @@ -81,7 +81,7 @@ if cmd == CMD_ADD_EXCEPTION_BREAK: # send exception name as message if message: - message = str(message) + message = "jinja2-%s" % str(message) thread.additional_info.pydev_message = message return frame @@ -228,7 +228,7 @@ return True return False -def can_not_skip(plugin, pydb, pydb_frame, frame): +def can_not_skip(plugin, pydb, pydb_frame, frame, info): if pydb.jinja2_breakpoints and _is_jinja2_render_call(frame): filename = _get_jinja2_template_filename(frame) jinja2_breakpoints_for_file = pydb.jinja2_breakpoints.get(filename) diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd.py pycharm-2019.1/helpers/pydev/pydevd.py --- pycharm-2018.3.5/helpers/pydev/pydevd.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd.py 2019-03-19 14:23:58.000000000 +0000 @@ -1016,7 +1016,7 @@ frame = frame.f_back del frame - def prepare_to_run(self): + def prepare_to_run(self, enable_tracing_from_start=True): ''' Shared code to prepare debugging by installing traces and registering threads ''' if self.signature_factory is not None or self.thread_analyser is not None: # we need all data to be sent to IDE even after program finishes @@ -1025,14 +1025,13 @@ self.frame_eval_func = None self.patch_threads() - pydevd_tracing.SetTrace(self.trace_dispatch, self.frame_eval_func, self.dummy_trace_dispatch) - # There is no need to set tracing function if frame evaluation is available. Moreover, there is no need to patch thread - # functions, because frame evaluation function is set to all threads by default. + if enable_tracing_from_start: + pydevd_tracing.SetTrace(self.trace_dispatch, self.frame_eval_func, self.dummy_trace_dispatch) PyDBCommandThread(self).start() if show_tracing_warning or show_frame_eval_warning: - cmd = self.cmd_factory.make_show_cython_warning_message() + cmd = self.cmd_factory.make_show_warning_message("cython") self.writer.add_command(cmd) @@ -1100,7 +1099,8 @@ while not self.ready_to_run: time.sleep(0.1) # busy wait until we receive run command - if self.break_on_caught_exceptions or (self.plugin and self.plugin.has_exception_breaks()) or self.signature_factory: + if self.break_on_caught_exceptions or self.has_plugin_line_breaks or self.has_plugin_exception_breaks \ + or self.signature_factory: # disable frame evaluation if there are exception breakpoints with 'On raise' activation policy # or if there are plugin exception breakpoints or if collecting run-time types is enabled self.frame_eval_func = None diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/dependency_links.txt pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/dependency_links.txt --- pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/dependency_links.txt 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/dependency_links.txt 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/entry_points.txt pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/entry_points.txt --- pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/entry_points.txt 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/entry_points.txt 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,3 @@ +[console_scripts] +pydevd = pydevd:main + diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/not-zip-safe pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/not-zip-safe --- pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/not-zip-safe 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/not-zip-safe 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/PKG-INFO pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/PKG-INFO --- pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/PKG-INFO 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,70 @@ +Metadata-Version: 1.1 +Name: pydevd-pycharm +Version: 191.6183.50 +Summary: PyCharm Debugger (used in PyCharm and PyDev) +Home-page: https://github.com/JetBrains/intellij-community +Author: JetBrains, Fabio Zadrozny and others +Author-email: UNKNOWN +License: Apache 2.0 +Description: PyDev.Debugger + ============== + + The sources for the PyDev.Debugger (used in PyDev & PyCharm) may be seen at: + + https://github.com/fabioz/PyDev.Debugger + + In general, the debugger backend should **NOT** be installed separately if you're using an IDE which already + bundles it (such as PyDev or PyCharm). + + It is however available in PyPi so that it can be installed for doing remote debugging with `pip` -- so, when + debugging a process which runs in another machine, it's possible to `pip install pydevd-pycharm` and in the code use + `pydevd_pycharm.settrace(host='10.1.1.1')` to connect the debugger backend to the debugger UI running in the IDE + (whereas previously the sources had to be manually copied from the IDE installation). + + It should be compatible with Python 2.6 onwards (as well as Jython 2.7, IronPython and PyPy -- and + any other variant which properly supports the Python structure for debuggers -- i.e.: sys.settrace/threading.settrace). + + Recent versions contain speedup modules using Cython, which are generated with a few changes in the regular files + to `cythonize` the files. To update and compile the cython sources (and generate some other auto-generated files), + `build_tools/build.py` should be run -- note that the resulting .pyx and .c files should be commited. + + To generate a distribution with the precompiled binaries for the IDE, `build_binaries_windows.py` should be run ( + note that the environments must be pre-created as specified in that file). + + To generate a distribution to upload to PyPi, `python setup.py sdist bdist_wheel` should be run for each python version + which should have a wheel and afterwards `twine upload -s dist/pydevd-*` should be run to actually upload the contents + to PyPi. + + Travis (Linux CI): + + .. |travis| image:: https://travis-ci.org/fabioz/PyDev.Debugger.png + :target: https://travis-ci.org/fabioz/PyDev.Debugger + + |travis| + + Appveyor (Windows CI): + + .. |appveyor| image:: https://ci.appveyor.com/api/projects/status/j6vjq687brbk20ux?svg=true + :target: https://ci.appveyor.com/project/fabioz/pydev-debugger + + |appveyor| + + +Keywords: pydev,pydevd,pydev.debugger,pycharm +Platform: UNKNOWN +Classifier: Development Status :: 6 - Mature +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: POSIX +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Topic :: Software Development :: Debuggers diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/SOURCES.txt pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/SOURCES.txt --- pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/SOURCES.txt 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/SOURCES.txt 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,232 @@ +LICENSE +MANIFEST.in +README.rst +VERSION +merge_pydev_pycharm.txt +pycharm-readme.txt +pydev_app_engine_debug_startup.py +pydevconsole.py +pydevd.py +pydevd_file_utils.py +pydevd_pycharm.py +setup.py +setup_cython.py +_pydev_bundle/__init__.py +_pydev_bundle/_pydev_calltip_util.py +_pydev_bundle/_pydev_completer.py +_pydev_bundle/_pydev_filesystem_encoding.py +_pydev_bundle/_pydev_getopt.py +_pydev_bundle/_pydev_imports_tipper.py +_pydev_bundle/_pydev_jy_imports_tipper.py +_pydev_bundle/_pydev_log.py +_pydev_bundle/_pydev_tipper_common.py +_pydev_bundle/fix_getpass.py +_pydev_bundle/pydev_code_executor.py +_pydev_bundle/pydev_console_commands.py +_pydev_bundle/pydev_console_types.py +_pydev_bundle/pydev_console_utils.py +_pydev_bundle/pydev_import_hook.py +_pydev_bundle/pydev_imports.py +_pydev_bundle/pydev_ipython_code_executor.py +_pydev_bundle/pydev_ipython_console.py +_pydev_bundle/pydev_ipython_console_011.py +_pydev_bundle/pydev_is_thread_alive.py +_pydev_bundle/pydev_localhost.py +_pydev_bundle/pydev_log.py +_pydev_bundle/pydev_monkey.py +_pydev_bundle/pydev_monkey_qt.py +_pydev_bundle/pydev_override.py +_pydev_bundle/pydev_stdin.py +_pydev_bundle/pydev_umd.py +_pydev_bundle/pydev_versioncheck.py +_pydev_imps/__init__.py +_pydev_imps/_pydev_BaseHTTPServer.py +_pydev_imps/_pydev_SimpleXMLRPCServer.py +_pydev_imps/_pydev_SocketServer.py +_pydev_imps/_pydev_execfile.py +_pydev_imps/_pydev_inspect.py +_pydev_imps/_pydev_pkgutil_old.py +_pydev_imps/_pydev_saved_modules.py +_pydev_imps/_pydev_sys_patch.py +_pydev_imps/_pydev_xmlrpclib.py +_pydev_runfiles/__init__.py +_pydev_runfiles/pydev_runfiles.py +_pydev_runfiles/pydev_runfiles_coverage.py +_pydev_runfiles/pydev_runfiles_nose.py +_pydev_runfiles/pydev_runfiles_parallel.py +_pydev_runfiles/pydev_runfiles_parallel_client.py +_pydev_runfiles/pydev_runfiles_pytest2.py +_pydev_runfiles/pydev_runfiles_unittest.py +_pydev_runfiles/pydev_runfiles_xml_rpc.py +_pydevd_bundle/__init__.py +_pydevd_bundle/pydevconsole_code_for_ironpython.py +_pydevd_bundle/pydevd_additional_thread_info.py +_pydevd_bundle/pydevd_additional_thread_info_regular.py +_pydevd_bundle/pydevd_breakpointhook.py +_pydevd_bundle/pydevd_breakpoints.py +_pydevd_bundle/pydevd_comm.py +_pydevd_bundle/pydevd_command_line_handling.py +_pydevd_bundle/pydevd_console.py +_pydevd_bundle/pydevd_console_integration.py +_pydevd_bundle/pydevd_constants.py +_pydevd_bundle/pydevd_custom_frames.py +_pydevd_bundle/pydevd_cython.pyx +_pydevd_bundle/pydevd_cython_darwin_27_64.so +_pydevd_bundle/pydevd_cython_darwin_34_64.so +_pydevd_bundle/pydevd_cython_darwin_35_64.cpython-35m-darwin.so +_pydevd_bundle/pydevd_cython_darwin_36_64.cpython-36m-darwin.so +_pydevd_bundle/pydevd_cython_darwin_37_64.cpython-37m-darwin.so +_pydevd_bundle/pydevd_cython_win32_27_32.pyd +_pydevd_bundle/pydevd_cython_win32_27_64.pyd +_pydevd_bundle/pydevd_cython_win32_34_32.pyd +_pydevd_bundle/pydevd_cython_win32_34_64.pyd +_pydevd_bundle/pydevd_cython_win32_35_32.cp35-win32.pyd +_pydevd_bundle/pydevd_cython_win32_35_64.cp35-win_amd64.pyd +_pydevd_bundle/pydevd_cython_win32_36_32.cp36-win32.pyd +_pydevd_bundle/pydevd_cython_win32_36_64.cp36-win_amd64.pyd +_pydevd_bundle/pydevd_cython_win32_37_32.cp37-win32.pyd +_pydevd_bundle/pydevd_cython_win32_37_64.cp37-win_amd64.pyd +_pydevd_bundle/pydevd_cython_wrapper.py +_pydevd_bundle/pydevd_dont_trace.py +_pydevd_bundle/pydevd_dont_trace_files.py +_pydevd_bundle/pydevd_exec.py +_pydevd_bundle/pydevd_exec2.py +_pydevd_bundle/pydevd_extension_api.py +_pydevd_bundle/pydevd_extension_utils.py +_pydevd_bundle/pydevd_frame.py +_pydevd_bundle/pydevd_frame_utils.py +_pydevd_bundle/pydevd_import_class.py +_pydevd_bundle/pydevd_io.py +_pydevd_bundle/pydevd_kill_all_pydevd_threads.py +_pydevd_bundle/pydevd_plugin_utils.py +_pydevd_bundle/pydevd_process_net_command.py +_pydevd_bundle/pydevd_referrers.py +_pydevd_bundle/pydevd_reload.py +_pydevd_bundle/pydevd_resolver.py +_pydevd_bundle/pydevd_save_locals.py +_pydevd_bundle/pydevd_signature.py +_pydevd_bundle/pydevd_stackless.py +_pydevd_bundle/pydevd_thrift.py +_pydevd_bundle/pydevd_trace_api.py +_pydevd_bundle/pydevd_trace_dispatch.py +_pydevd_bundle/pydevd_trace_dispatch_regular.py +_pydevd_bundle/pydevd_traceproperty.py +_pydevd_bundle/pydevd_tracing.py +_pydevd_bundle/pydevd_utils.py +_pydevd_bundle/pydevd_vars.py +_pydevd_bundle/pydevd_vm_type.py +_pydevd_bundle/pydevd_xml.py +_pydevd_frame_eval/__init__.py +_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +_pydevd_frame_eval/pydevd_frame_eval_main.py +_pydevd_frame_eval/pydevd_frame_evaluator_darwin_36_64.cpython-36m-darwin.so +_pydevd_frame_eval/pydevd_frame_evaluator_darwin_37_64.cpython-37m-darwin.so +_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_32.cp36-win32.pyd +_pydevd_frame_eval/pydevd_frame_evaluator_win32_36_64.cp36-win_amd64.pyd +_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_32.cp37-win32.pyd +_pydevd_frame_eval/pydevd_frame_evaluator_win32_37_64.cp37-win_amd64.pyd +_pydevd_frame_eval/pydevd_frame_tracing.py +_pydevd_frame_eval/pydevd_modify_bytecode.py +build_tools/build.py +build_tools/build_binaries_osx.py +build_tools/build_binaries_windows.py +build_tools/generate_code.py +build_tools/names_to_rename.py +build_tools/rename_pep8.py +pydev_ipython/__init__.py +pydev_ipython/inputhook.py +pydev_ipython/inputhookglut.py +pydev_ipython/inputhookgtk.py +pydev_ipython/inputhookgtk3.py +pydev_ipython/inputhookpyglet.py +pydev_ipython/inputhookqt4.py +pydev_ipython/inputhookqt5.py +pydev_ipython/inputhooktk.py +pydev_ipython/inputhookwx.py +pydev_ipython/matplotlibtools.py +pydev_ipython/qt.py +pydev_ipython/qt_for_kernel.py +pydev_ipython/qt_loaders.py +pydev_ipython/version.py +pydevd_attach_to_process/README.txt +pydevd_attach_to_process/_always_live_program.py +pydevd_attach_to_process/_check.py +pydevd_attach_to_process/_test_attach_to_process.py +pydevd_attach_to_process/_test_attach_to_process_linux.py +pydevd_attach_to_process/add_code_to_python_process.py +pydevd_attach_to_process/attach_amd64.dll +pydevd_attach_to_process/attach_linux_amd64.so +pydevd_attach_to_process/attach_linux_x86.so +pydevd_attach_to_process/attach_pydevd.py +pydevd_attach_to_process/attach_script.py +pydevd_attach_to_process/attach_x86.dll +pydevd_attach_to_process/attach_x86.dylib +pydevd_attach_to_process/attach_x86_64.dylib +pydevd_attach_to_process/dll/attach.cpp +pydevd_attach_to_process/dll/attach.h +pydevd_attach_to_process/dll/compile_dll.bat +pydevd_attach_to_process/dll/python.h +pydevd_attach_to_process/dll/stdafx.cpp +pydevd_attach_to_process/dll/stdafx.h +pydevd_attach_to_process/dll/targetver.h +pydevd_attach_to_process/linux/Makefile +pydevd_attach_to_process/linux/attach_linux.c +pydevd_attach_to_process/linux/compile_mac.sh +pydevd_attach_to_process/linux/compile_so.sh +pydevd_attach_to_process/linux/gdb_threads_settrace.py +pydevd_attach_to_process/linux/lldb_prepare.py +pydevd_attach_to_process/linux/lldb_threads_settrace.py +pydevd_attach_to_process/linux/python.h +pydevd_attach_to_process/winappdbg/__init__.py +pydevd_attach_to_process/winappdbg/breakpoint.py +pydevd_attach_to_process/winappdbg/compat.py +pydevd_attach_to_process/winappdbg/crash.py +pydevd_attach_to_process/winappdbg/debug.py +pydevd_attach_to_process/winappdbg/disasm.py +pydevd_attach_to_process/winappdbg/event.py +pydevd_attach_to_process/winappdbg/interactive.py +pydevd_attach_to_process/winappdbg/module.py +pydevd_attach_to_process/winappdbg/process.py +pydevd_attach_to_process/winappdbg/registry.py +pydevd_attach_to_process/winappdbg/search.py +pydevd_attach_to_process/winappdbg/sql.py +pydevd_attach_to_process/winappdbg/system.py +pydevd_attach_to_process/winappdbg/textio.py +pydevd_attach_to_process/winappdbg/thread.py +pydevd_attach_to_process/winappdbg/util.py +pydevd_attach_to_process/winappdbg/window.py +pydevd_attach_to_process/winappdbg/plugins/README +pydevd_attach_to_process/winappdbg/plugins/__init__.py +pydevd_attach_to_process/winappdbg/plugins/do_example.py +pydevd_attach_to_process/winappdbg/plugins/do_exchain.py +pydevd_attach_to_process/winappdbg/plugins/do_exploitable.py +pydevd_attach_to_process/winappdbg/plugins/do_symfix.py +pydevd_attach_to_process/winappdbg/win32/__init__.py +pydevd_attach_to_process/winappdbg/win32/advapi32.py +pydevd_attach_to_process/winappdbg/win32/context_amd64.py +pydevd_attach_to_process/winappdbg/win32/context_i386.py +pydevd_attach_to_process/winappdbg/win32/dbghelp.py +pydevd_attach_to_process/winappdbg/win32/defines.py +pydevd_attach_to_process/winappdbg/win32/gdi32.py +pydevd_attach_to_process/winappdbg/win32/kernel32.py +pydevd_attach_to_process/winappdbg/win32/ntdll.py +pydevd_attach_to_process/winappdbg/win32/peb_teb.py +pydevd_attach_to_process/winappdbg/win32/psapi.py +pydevd_attach_to_process/winappdbg/win32/shell32.py +pydevd_attach_to_process/winappdbg/win32/shlwapi.py +pydevd_attach_to_process/winappdbg/win32/user32.py +pydevd_attach_to_process/winappdbg/win32/version.py +pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +pydevd_concurrency_analyser/__init__.py +pydevd_concurrency_analyser/pydevd_concurrency_logger.py +pydevd_concurrency_analyser/pydevd_thread_wrappers.py +pydevd_plugins/__init__.py +pydevd_plugins/django_debug.py +pydevd_plugins/jinja2_debug.py +pydevd_plugins/extensions/__init__.py +pydevd_pycharm.egg-info/PKG-INFO +pydevd_pycharm.egg-info/SOURCES.txt +pydevd_pycharm.egg-info/dependency_links.txt +pydevd_pycharm.egg-info/entry_points.txt +pydevd_pycharm.egg-info/not-zip-safe +pydevd_pycharm.egg-info/top_level.txt \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/top_level.txt pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/top_level.txt --- pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.egg-info/top_level.txt 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_pycharm.egg-info/top_level.txt 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,15 @@ +_pydev_bundle +_pydev_imps +_pydev_runfiles +_pydevd_bundle +_pydevd_frame_eval +pydev_app_engine_debug_startup +pydev_ipython +pydevconsole +pydevd +pydevd_concurrency_analyser +pydevd_file_utils +pydevd_plugins +pydevd_pycharm +pydevd_tracing +setup_cython diff -Nru pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.py pycharm-2019.1/helpers/pydev/pydevd_pycharm.py --- pycharm-2018.3.5/helpers/pydev/pydevd_pycharm.py 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydevd_pycharm.py 2019-03-19 14:23:58.000000000 +0000 @@ -0,0 +1,6 @@ + +# make settrace() function available for `pydevd_pycharm` +from pydevd import settrace + +from _pydevd_bundle.pydevd_comm import VERSION_STRING +__version__ = VERSION_STRING diff -Nru pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_BaseHTTPServer.py pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_BaseHTTPServer.py --- pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_BaseHTTPServer.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_BaseHTTPServer.py 2019-03-19 14:23:58.000000000 +0000 @@ -596,7 +596,7 @@ httpd = ServerClass(server_address, HandlerClass) sa = httpd.socket.getsockname() - print ("Serving HTTP on", sa[0], "port", sa[1], "...") + print("Serving HTTP on", sa[0], "port", sa[1], "...") httpd.serve_forever() diff -Nru pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_inspect.py pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_inspect.py --- pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_inspect.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_inspect.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,3 +1,4 @@ +# -*- coding: iso-8859-1 -*- """Get useful information from live Python objects. This module encapsulates the interface provided by the internal special @@ -6,8 +7,9 @@ Here are some of the useful functions provided by this module: - ismodule(), isclass(), ismethod(), isfunction(), istraceback(), - isframe(), iscode(), isbuiltin(), isroutine() - check object types + ismodule(), isclass(), ismethod(), isfunction(), isgeneratorfunction(), + isgenerator(), istraceback(), isframe(), iscode(), isbuiltin(), + isroutine() - check object types getmembers() - get members of an object that satisfy a given condition getfile(), getsourcefile(), getsource() - find an object's source code @@ -15,7 +17,7 @@ getmodule() - determine the module that an object came from getclasstree() - arrange classes so as to represent their hierarchy - getargspec(), getargvalues() - get info about function arguments + getargspec(), getargvalues(), getcallargs() - get info about function arguments formatargspec(), formatargvalues() - format an argument spec getouterframes(), getinnerframes() - get info about frames currentframe() - get the current stack frame @@ -27,7 +29,23 @@ __author__ = 'Ka-Ping Yee ' __date__ = '1 Jan 2001' -import sys, os, types, string, re, imp, tokenize +import sys +import os +import types +import string +import re +import dis +import imp +import tokenize +import linecache +from operator import attrgetter +from collections import namedtuple + +# These constants are from Include/code.h. +CO_OPTIMIZED, CO_NEWLOCALS, CO_VARARGS, CO_VARKEYWORDS = 0x1, 0x2, 0x4, 0x8 +CO_NESTED, CO_GENERATOR, CO_NOFREE = 0x10, 0x20, 0x40 +# See Include/object.h +TPFLAGS_IS_ABSTRACT = 1 << 20 # ----------------------------------------------------------- type-checking def ismodule(object): @@ -44,7 +62,7 @@ Class objects provide these attributes: __doc__ documentation string __module__ name of module in which this class was defined""" - return isinstance(object, types.ClassType) or hasattr(object, '__bases__') + return isinstance(object, (type, types.ClassType)) def ismethod(object): """Return true if the object is an instance method. @@ -77,6 +95,50 @@ and not isfunction(object) and not isclass(object)) +def isdatadescriptor(object): + """Return true if the object is a data descriptor. + + Data descriptors have both a __get__ and a __set__ attribute. Examples are + properties (defined in Python) and getsets and members (defined in C). + Typically, data descriptors will also have __name__ and __doc__ attributes + (properties, getsets, and members have both of these attributes), but this + is not guaranteed.""" + return (hasattr(object, "__set__") and hasattr(object, "__get__")) + +if hasattr(types, 'MemberDescriptorType'): + # CPython and equivalent + def ismemberdescriptor(object): + """Return true if the object is a member descriptor. + + Member descriptors are specialized descriptors defined in extension + modules.""" + return isinstance(object, types.MemberDescriptorType) +else: + # Other implementations + def ismemberdescriptor(object): + """Return true if the object is a member descriptor. + + Member descriptors are specialized descriptors defined in extension + modules.""" + return False + +if hasattr(types, 'GetSetDescriptorType'): + # CPython and equivalent + def isgetsetdescriptor(object): + """Return true if the object is a getset descriptor. + + getset descriptors are specialized descriptors defined in extension + modules.""" + return isinstance(object, types.GetSetDescriptorType) +else: + # Other implementations + def isgetsetdescriptor(object): + """Return true if the object is a getset descriptor. + + getset descriptors are specialized descriptors defined in extension + modules.""" + return False + def isfunction(object): """Return true if the object is a user-defined function. @@ -90,6 +152,32 @@ func_name (same as __name__)""" return isinstance(object, types.FunctionType) +def isgeneratorfunction(object): + """Return true if the object is a user-defined generator function. + + Generator function objects provides same attributes as functions. + + See help(isfunction) for attributes listing.""" + return bool((isfunction(object) or ismethod(object)) and + object.func_code.co_flags & CO_GENERATOR) + +def isgenerator(object): + """Return true if the object is a generator. + + Generator objects provide these attributes: + __iter__ defined to support iteration over container + close raises a new GeneratorExit exception inside the + generator to terminate the iteration + gi_code code object + gi_frame frame object or possibly None once the generator has + been exhausted + gi_running set to 1 when generator is executing, 0 otherwise + next return the next item from the container + send resumes the generator and "sends" a value that becomes + the result of the current yield-expression + throw used to raise an exception inside the generator""" + return isinstance(object, types.GeneratorType) + def istraceback(object): """Return true if the object is a traceback. @@ -152,17 +240,26 @@ or ismethod(object) or ismethoddescriptor(object)) +def isabstract(object): + """Return true if the object is an abstract base class (ABC).""" + return bool(isinstance(object, type) and object.__flags__ & TPFLAGS_IS_ABSTRACT) + def getmembers(object, predicate=None): """Return all members of an object as (name, value) pairs sorted by name. Optionally, only return members that satisfy a given predicate.""" results = [] for key in dir(object): - value = getattr(object, key) + try: + value = getattr(object, key) + except AttributeError: + continue if not predicate or predicate(value): results.append((key, value)) results.sort() return results +Attribute = namedtuple('Attribute', 'name kind defining_class object') + def classify_class_attrs(cls): """Return list of attribute-descriptor tuples. @@ -191,30 +288,21 @@ names = dir(cls) result = [] for name in names: - # Get the object associated with the name. + # Get the object associated with the name, and where it was defined. # Getting an obj from the __dict__ sometimes reveals more than # using getattr. Static and class methods are dramatic examples. - if name in cls.__dict__: - obj = cls.__dict__[name] + # Furthermore, some objects may raise an Exception when fetched with + # getattr(). This is the case with some descriptors (bug #1785). + # Thus, we only use getattr() as a last resort. + homecls = None + for base in (cls,) + mro: + if name in base.__dict__: + obj = base.__dict__[name] + homecls = base + break else: obj = getattr(cls, name) - - # Figure out where it was defined. - homecls = getattr(obj, "__objclass__", None) - if homecls is None: - # search the dicts. - for base in mro: - if name in base.__dict__: - homecls = base - break - - # Get the object again, in order to get it from the defining - # __dict__ instead of via getattr (if possible). - if homecls is not None and name in homecls.__dict__: - obj = homecls.__dict__[name] - - # Also get the object via getattr. - obj_via_getattr = getattr(cls, name) + homecls = getattr(obj, "__objclass__", homecls) # Classify the object. if isinstance(obj, staticmethod): @@ -223,13 +311,20 @@ kind = "class method" elif isinstance(obj, property): kind = "property" - elif (ismethod(obj_via_getattr) or - ismethoddescriptor(obj_via_getattr)): + elif ismethoddescriptor(obj): kind = "method" - else: + elif isdatadescriptor(obj): kind = "data" + else: + obj_via_getattr = getattr(cls, name) + if (ismethod(obj_via_getattr) or + ismethoddescriptor(obj_via_getattr)): + kind = "method" + else: + kind = "data" + obj = obj_via_getattr - result.append((name, kind, homecls, obj)) + result.append(Attribute(name, kind, homecls, obj)) return result @@ -267,22 +362,37 @@ doc = object.__doc__ except AttributeError: return None - if not isinstance(doc, (str, unicode)): + if not isinstance(doc, types.StringTypes): return None + return cleandoc(doc) + +def cleandoc(doc): + """Clean up indentation from docstrings. + + Any whitespace that can be uniformly removed from the second line + onwards is removed.""" try: lines = string.split(string.expandtabs(doc), '\n') except UnicodeError: return None else: - margin = None + # Find minimum indentation of any non-blank lines after first line. + margin = sys.maxint for line in lines[1:]: content = len(string.lstrip(line)) - if not content: continue - indent = len(line) - content - if margin is None: margin = indent - else: margin = min(margin, indent) - if margin is not None: + if content: + indent = len(line) - content + margin = min(margin, indent) + # Remove indentation. + if lines: + lines[0] = lines[0].lstrip() + if margin < sys.maxint: for i in range(1, len(lines)): lines[i] = lines[i][margin:] + # Remove any trailing or leading blank lines. + while lines and not lines[-1]: + lines.pop() + while lines and not lines[0]: + lines.pop(0) return string.join(lines, '\n') def getfile(object): @@ -290,12 +400,12 @@ if ismodule(object): if hasattr(object, '__file__'): return object.__file__ - raise TypeError, 'arg is a built-in module' + raise TypeError('{!r} is a built-in module'.format(object)) if isclass(object): object = sys.modules.get(object.__module__) if hasattr(object, '__file__'): return object.__file__ - raise TypeError, 'arg is a built-in class' + raise TypeError('{!r} is a built-in class'.format(object)) if ismethod(object): object = object.im_func if isfunction(object): @@ -306,18 +416,21 @@ object = object.f_code if iscode(object): return object.co_filename - raise TypeError, 'arg is not a module, class, method, ' \ - 'function, traceback, frame, or code object' + raise TypeError('{!r} is not a module, class, method, ' + 'function, traceback, frame, or code object'.format(object)) + +ModuleInfo = namedtuple('ModuleInfo', 'name suffix mode module_type') def getmoduleinfo(path): """Get the module name, suffix, mode, and module type for a given file.""" filename = os.path.basename(path) - suffixes = map(lambda (suffix, mode, mtype): - (-len(suffix), suffix, mode, mtype), imp.get_suffixes()) + suffixes = map(lambda info: + (-len(info[0]), info[0], info[1], info[2]), + imp.get_suffixes()) suffixes.sort() # try longest suffixes first, in case they overlap for neglen, suffix, mode, mtype in suffixes: if filename[neglen:] == suffix: - return filename[:neglen], suffix, mode, mtype + return ModuleInfo(filename[:neglen], suffix, mode, mtype) def getmodulename(path): """Return the module name for a given file, or None.""" @@ -325,9 +438,11 @@ if info: return info[0] def getsourcefile(object): - """Return the Python source file an object was defined in, if it exists.""" + """Return the filename that can be used to locate an object's source. + Return None if no way can be identified to get the source. + """ filename = getfile(object) - if string.lower(filename[-4:]) in ['.pyc', '.pyo']: + if string.lower(filename[-4:]) in ('.pyc', '.pyo'): filename = filename[:-4] + '.py' for suffix, mode, kind in imp.get_suffixes(): if 'b' in mode and string.lower(filename[-len(suffix):]) == suffix: @@ -335,39 +450,65 @@ return None if os.path.exists(filename): return filename + # only return a non-existent filename if the module has a PEP 302 loader + if hasattr(getmodule(object, filename), '__loader__'): + return filename + # or it is in the linecache + if filename in linecache.cache: + return filename -def getabsfile(object): +def getabsfile(object, _filename=None): """Return an absolute path to the source or compiled file for an object. The idea is for each object to have a unique origin, so this routine normalizes the result as much as possible.""" - return os.path.normcase( - os.path.abspath(getsourcefile(object) or getfile(object))) + if _filename is None: + _filename = getsourcefile(object) or getfile(object) + return os.path.normcase(os.path.abspath(_filename)) modulesbyfile = {} +_filesbymodname = {} -def getmodule(object): +def getmodule(object, _filename=None): """Return the module an object was defined in, or None if not found.""" if ismodule(object): return object - if isclass(object): + if hasattr(object, '__module__'): return sys.modules.get(object.__module__) + # Try the filename to modulename cache + if _filename is not None and _filename in modulesbyfile: + return sys.modules.get(modulesbyfile[_filename]) + # Try the cache again with the absolute file name try: - file = getabsfile(object) + file = getabsfile(object, _filename) except TypeError: return None - if modulesbyfile.has_key(file): - return sys.modules[modulesbyfile[file]] - for module in sys.modules.values(): - if hasattr(module, '__file__'): - modulesbyfile[getabsfile(module)] = module.__name__ - if modulesbyfile.has_key(file): - return sys.modules[modulesbyfile[file]] + if file in modulesbyfile: + return sys.modules.get(modulesbyfile[file]) + # Update the filename to module name cache and check yet again + # Copy sys.modules in order to cope with changes while iterating + for modname, module in sys.modules.items(): + if ismodule(module) and hasattr(module, '__file__'): + f = module.__file__ + if f == _filesbymodname.get(modname, None): + # Have already mapped this module, so skip it + continue + _filesbymodname[modname] = f + f = getabsfile(module) + # Always map to the name the module knows itself by + modulesbyfile[f] = modulesbyfile[ + os.path.realpath(f)] = module.__name__ + if file in modulesbyfile: + return sys.modules.get(modulesbyfile[file]) + # Check the main module main = sys.modules['__main__'] + if not hasattr(object, '__name__'): + return None if hasattr(main, object.__name__): mainobject = getattr(main, object.__name__) if mainobject is object: return main + # Check builtins builtin = sys.modules['__builtin__'] if hasattr(builtin, object.__name__): builtinobject = getattr(builtin, object.__name__) @@ -381,22 +522,46 @@ or code object. The source code is returned as a list of all the lines in the file and the line number indexes a line in that list. An IOError is raised if the source code cannot be retrieved.""" - try: - file = open(getsourcefile(object)) - except (TypeError, IOError): - raise IOError, 'could not get source code' - lines = file.readlines() - file.close() + + file = getfile(object) + sourcefile = getsourcefile(object) + if not sourcefile and file[:1] + file[-1:] != '<>': + raise IOError('source code not available') + file = sourcefile if sourcefile else file + + module = getmodule(object, file) + if module: + lines = linecache.getlines(file, module.__dict__) + else: + lines = linecache.getlines(file) + if not lines: + raise IOError('could not get source code') if ismodule(object): return lines, 0 if isclass(object): name = object.__name__ - pat = re.compile(r'^\s*class\s*' + name + r'\b') + pat = re.compile(r'^(\s*)class\s*' + name + r'\b') + # make some effort to find the best matching class definition: + # use the one with the least indentation, which is the one + # that's most probably not inside a function definition. + candidates = [] for i in range(len(lines)): - if pat.match(lines[i]): return lines, i - else: raise IOError, 'could not find class definition' + match = pat.match(lines[i]) + if match: + # if it's at toplevel, it's already the best one + if lines[i][0] == 'c': + return lines, i + # else add whitespace to candidate list + candidates.append((match.group(1), i)) + if candidates: + # this will sort by whitespace, and by line number, + # less whitespace first + candidates.sort() + return lines, candidates[0][1] + else: + raise IOError('could not find class definition') if ismethod(object): object = object.im_func @@ -408,25 +573,30 @@ object = object.f_code if iscode(object): if not hasattr(object, 'co_firstlineno'): - raise IOError, 'could not find function definition' + raise IOError('could not find function definition') lnum = object.co_firstlineno - 1 - pat = re.compile(r'^(\s*def\s)|(.*\slambda(:|\s))') + pat = re.compile(r'^(\s*def\s)|(.*(? 0: if pat.match(lines[lnum]): break lnum = lnum - 1 return lines, lnum - raise IOError, 'could not find code object' + raise IOError('could not find code object') def getcomments(object): - """Get lines of comments immediately preceding an object's source code.""" - try: lines, lnum = findsource(object) - except IOError: return None + """Get lines of comments immediately preceding an object's source code. + + Returns None when source can't be found. + """ + try: + lines, lnum = findsource(object) + except (IOError, TypeError): + return None if ismodule(object): # Look for a comment block at the top of the file. start = 0 if lines and lines[0][:2] == '#!': start = 1 - while start < len(lines) and string.strip(lines[start]) in ['', '#']: + while start < len(lines) and string.strip(lines[start]) in ('', '#'): start = start + 1 if start < len(lines) and lines[start][:1] == '#': comments = [] @@ -441,7 +611,7 @@ indent = indentsize(lines[lnum]) end = lnum - 1 if end >= 0 and string.lstrip(lines[end])[:1] == '#' and \ - indentsize(lines[end]) == indent: + indentsize(lines[end]) == indent: comments = [string.lstrip(string.expandtabs(lines[end]))] if end > 0: end = end - 1 @@ -457,49 +627,57 @@ comments[-1:] = [] return string.join(comments, '') -class ListReader: - """Provide a readline() method to return lines from a list of strings.""" - def __init__(self, lines): - self.lines = lines - self.index = 0 - - def readline(self): - i = self.index - if i < len(self.lines): - self.index = i + 1 - return self.lines[i] - else: return '' - class EndOfBlock(Exception): pass class BlockFinder: """Provide a tokeneater() method to detect the end of a code block.""" def __init__(self): self.indent = 0 - self.started = 0 - self.last = 0 - - def tokeneater(self, type, token, (srow, scol), (erow, ecol), line): + self.islambda = False + self.started = False + self.passline = False + self.last = 1 + + def tokeneater(self, type, token, srow_scol, erow_ecol, line): + srow, scol = srow_scol + erow, ecol = erow_ecol if not self.started: - if type == tokenize.NAME: self.started = 1 + # look for the first "def", "class" or "lambda" + if token in ("def", "class", "lambda"): + if token == "lambda": + self.islambda = True + self.started = True + self.passline = True # skip to the end of the line elif type == tokenize.NEWLINE: + self.passline = False # stop skipping when a NEWLINE is seen self.last = srow + if self.islambda: # lambdas always end at the first NEWLINE + raise EndOfBlock + elif self.passline: + pass elif type == tokenize.INDENT: self.indent = self.indent + 1 + self.passline = True elif type == tokenize.DEDENT: self.indent = self.indent - 1 - if self.indent == 0: raise EndOfBlock, self.last - elif type == tokenize.NAME and scol == 0: - raise EndOfBlock, self.last + # the end of matching indent/dedent pairs end a block + # (note that this only works for "def"/"class" blocks, + # not e.g. for "if: else:" or "try: finally:" blocks) + if self.indent <= 0: + raise EndOfBlock + elif self.indent == 0 and type not in (tokenize.COMMENT, tokenize.NL): + # any other token on the same indentation level end the previous + # block as well, except the pseudo-tokens COMMENT and NL. + raise EndOfBlock def getblock(lines): """Extract the block of code at the top of the given list of lines.""" + blockfinder = BlockFinder() try: - tokenize.tokenize(ListReader(lines).readline, BlockFinder().tokeneater) - except EndOfBlock, eob: - return lines[:eob.args[0]] - # Fooling the indent/dedent logic implies a one-line definition - return lines[:1] + tokenize.tokenize(iter(lines).next, blockfinder.tokeneater) + except (EndOfBlock, IndentationError): + pass + return lines[:blockfinder.last] def getsourcelines(object): """Return a list of source lines and starting line number for an object. @@ -527,10 +705,10 @@ def walktree(classes, children, parent): """Recursive helper function for getclasstree().""" results = [] - classes.sort(lambda a, b: cmp(a.__name__, b.__name__)) + classes.sort(key=attrgetter('__module__', '__name__')) for c in classes: results.append((c, c.__bases__)) - if children.has_key(c): + if c in children: results.append(walktree(children[c], children, c)) return results @@ -548,20 +726,20 @@ for c in classes: if c.__bases__: for parent in c.__bases__: - if not children.has_key(parent): + if not parent in children: children[parent] = [] - children[parent].append(c) + if c not in children[parent]: + children[parent].append(c) if unique and parent in classes: break elif c not in roots: roots.append(c) - for parent in children.keys(): + for parent in children: if parent not in classes: roots.append(parent) return walktree(roots, children, None) # ------------------------------------------------ argument list extraction -# These constants are from Python's compile.h. -CO_OPTIMIZED, CO_NEWLOCALS, CO_VARARGS, CO_VARKEYWORDS = 1, 2, 4, 8 +Arguments = namedtuple('Arguments', 'args varargs keywords') def getargs(co): """Get information about the arguments accepted by a code object. @@ -569,7 +747,9 @@ Three things are returned: (args, varargs, varkw), where 'args' is a list of argument names (possibly containing nested lists), and 'varargs' and 'varkw' are the names of the * and ** arguments or None.""" - if not iscode(co): raise TypeError, 'arg is not a code object' + + if not iscode(co): + raise TypeError('{!r} is not a code object'.format(co)) nargs = co.co_argcount names = co.co_varnames @@ -577,24 +757,29 @@ step = 0 # The following acrobatics are for anonymous (tuple) arguments. - if not sys.platform.startswith('java'):#Jython doesn't have co_code - code = co.co_code - import dis - for i in range(nargs): - if args[i][:1] in ['', '.']: - stack, remain, count = [], [], [] - while step < len(code): - op = ord(code[step]) - step = step + 1 - if op >= dis.HAVE_ARGUMENT: - opname = dis.opname[op] - value = ord(code[step]) + ord(code[step + 1]) * 256 - step = step + 2 - if opname in ['UNPACK_TUPLE', 'UNPACK_SEQUENCE']: - remain.append(value) - count.append(value) - elif opname == 'STORE_FAST': - stack.append(names[value]) + for i in range(nargs): + if args[i][:1] in ('', '.'): + stack, remain, count = [], [], [] + while step < len(co.co_code): + op = ord(co.co_code[step]) + step = step + 1 + if op >= dis.HAVE_ARGUMENT: + opname = dis.opname[op] + value = ord(co.co_code[step]) + ord(co.co_code[step+1])*256 + step = step + 2 + if opname in ('UNPACK_TUPLE', 'UNPACK_SEQUENCE'): + remain.append(value) + count.append(value) + elif opname == 'STORE_FAST': + stack.append(names[value]) + + # Special case for sublists of length 1: def foo((bar)) + # doesn't generate the UNPACK_TUPLE bytecode, so if + # `remain` is empty here, we have such a sublist. + if not remain: + stack[0] = [stack[0]] + break + else: remain[-1] = remain[-1] - 1 while remain[-1] == 0: remain.pop() @@ -603,7 +788,7 @@ if not remain: break remain[-1] = remain[-1] - 1 if not remain: break - args[i] = stack[0] + args[i] = stack[0] varargs = None if co.co_flags & CO_VARARGS: @@ -612,7 +797,9 @@ varkw = None if co.co_flags & CO_VARKEYWORDS: varkw = co.co_varnames[nargs] - return args, varargs, varkw + return Arguments(args, varargs, varkw) + +ArgSpec = namedtuple('ArgSpec', 'args varargs keywords defaults') def getargspec(func): """Get the names and default values of a function's arguments. @@ -620,12 +807,17 @@ A tuple of four things is returned: (args, varargs, varkw, defaults). 'args' is a list of the argument names (it may contain nested lists). 'varargs' and 'varkw' are the names of the * and ** arguments or None. - 'defaults' is an n-tuple of the default values of the last n arguments.""" + 'defaults' is an n-tuple of the default values of the last n arguments. + """ + if ismethod(func): func = func.im_func - if not isfunction(func): raise TypeError, 'arg is not a Python function' + if not isfunction(func): + raise TypeError('{!r} is not a Python function'.format(func)) args, varargs, varkw = getargs(func.func_code) - return args, varargs, varkw, func.func_defaults + return ArgSpec(args, varargs, varkw, func.func_defaults) + +ArgInfo = namedtuple('ArgInfo', 'args varargs keywords locals') def getargvalues(frame): """Get information about arguments passed into a particular frame. @@ -635,7 +827,7 @@ 'varargs' and 'varkw' are the names of the * and ** arguments or None. 'locals' is the locals dictionary of the given frame.""" args, varargs, varkw = getargs(frame.f_code) - return args, varargs, varkw, frame.f_locals + return ArgInfo(args, varargs, varkw, frame.f_locals) def joinseq(seq): if len(seq) == 1: @@ -645,7 +837,7 @@ def strseq(object, convert, join=joinseq): """Recursively walk a sequence, stringifying each element.""" - if type(object) in [types.ListType, types.TupleType]: + if type(object) in (list, tuple): return join(map(lambda o, c=convert, j=join: strseq(o, c, j), object)) else: return convert(object) @@ -665,14 +857,14 @@ specs = [] if defaults: firstdefault = len(args) - len(defaults) - for i in range(len(args)): - spec = strseq(args[i], formatarg, join) + for i, arg in enumerate(args): + spec = strseq(arg, formatarg, join) if defaults and i >= firstdefault: spec = spec + formatvalue(defaults[i - firstdefault]) specs.append(spec) - if varargs: + if varargs is not None: specs.append(formatvarargs(varargs)) - if varkw: + if varkw is not None: specs.append(formatvarkw(varkw)) return '(' + string.join(specs, ', ') + ')' @@ -700,7 +892,99 @@ specs.append(formatvarkw(varkw) + formatvalue(locals[varkw])) return '(' + string.join(specs, ', ') + ')' +def getcallargs(func, *positional, **named): + """Get the mapping of arguments to values. + + A dict is returned, with keys the function argument names (including the + names of the * and ** arguments, if any), and values the respective bound + values from 'positional' and 'named'.""" + args, varargs, varkw, defaults = getargspec(func) + f_name = func.__name__ + arg2value = {} + + # The following closures are basically because of tuple parameter unpacking. + assigned_tuple_params = [] + def assign(arg, value): + if isinstance(arg, str): + arg2value[arg] = value + else: + assigned_tuple_params.append(arg) + value = iter(value) + for i, subarg in enumerate(arg): + try: + subvalue = next(value) + except StopIteration: + raise ValueError('need more than %d %s to unpack' % + (i, 'values' if i > 1 else 'value')) + assign(subarg,subvalue) + try: + next(value) + except StopIteration: + pass + else: + raise ValueError('too many values to unpack') + def is_assigned(arg): + if isinstance(arg,str): + return arg in arg2value + return arg in assigned_tuple_params + if ismethod(func) and func.im_self is not None: + # implicit 'self' (or 'cls' for classmethods) argument + positional = (func.im_self,) + positional + num_pos = len(positional) + num_total = num_pos + len(named) + num_args = len(args) + num_defaults = len(defaults) if defaults else 0 + for arg, value in zip(args, positional): + assign(arg, value) + if varargs: + if num_pos > num_args: + assign(varargs, positional[-(num_pos-num_args):]) + else: + assign(varargs, ()) + elif 0 < num_args < num_pos: + raise TypeError('%s() takes %s %d %s (%d given)' % ( + f_name, 'at most' if defaults else 'exactly', num_args, + 'arguments' if num_args > 1 else 'argument', num_total)) + elif num_args == 0 and num_total: + if varkw: + if num_pos: + # XXX: We should use num_pos, but Python also uses num_total: + raise TypeError('%s() takes exactly 0 arguments ' + '(%d given)' % (f_name, num_total)) + else: + raise TypeError('%s() takes no arguments (%d given)' % + (f_name, num_total)) + for arg in args: + if isinstance(arg, str) and arg in named: + if is_assigned(arg): + raise TypeError("%s() got multiple values for keyword " + "argument '%s'" % (f_name, arg)) + else: + assign(arg, named.pop(arg)) + if defaults: # fill in any missing values with the defaults + for arg, value in zip(args[-num_defaults:], defaults): + if not is_assigned(arg): + assign(arg, value) + if varkw: + assign(varkw, named) + elif named: + unexpected = next(iter(named)) + if isinstance(unexpected, unicode): + unexpected = unexpected.encode(sys.getdefaultencoding(), 'replace') + raise TypeError("%s() got an unexpected keyword argument '%s'" % + (f_name, unexpected)) + unassigned = num_args - len([arg for arg in args if is_assigned(arg)]) + if unassigned: + num_required = num_args - num_defaults + raise TypeError('%s() takes %s %d %s (%d given)' % ( + f_name, 'at least' if defaults else 'exactly', num_required, + 'arguments' if num_required > 1 else 'argument', num_total)) + return arg2value + # -------------------------------------------------- stack frame extraction + +Traceback = namedtuple('Traceback', 'filename lineno function code_context index') + def getframeinfo(frame, context=1): """Get information about a frame or traceback object. @@ -709,44 +993,35 @@ the source code, and the index of the current line within that list. The optional second argument specifies the number of lines of context to return, which are centered around the current line.""" - raise NotImplementedError -# if istraceback(frame): -# frame = frame.tb_frame -# if not isframe(frame): -# raise TypeError, 'arg is not a frame or traceback object' -# -# filename = getsourcefile(frame) -# lineno = getlineno(frame) -# if context > 0: -# start = lineno - 1 - context//2 -# try: -# lines, lnum = findsource(frame) -# except IOError: -# lines = index = None -# else: -# start = max(start, 1) -# start = min(start, len(lines) - context) -# lines = lines[start:start+context] -# index = lineno - 1 - start -# else: -# lines = index = None -# -# return (filename, lineno, frame.f_code.co_name, lines, index) + if istraceback(frame): + lineno = frame.tb_lineno + frame = frame.tb_frame + else: + lineno = frame.f_lineno + if not isframe(frame): + raise TypeError('{!r} is not a frame or traceback object'.format(frame)) + + filename = getsourcefile(frame) or getfile(frame) + if context > 0: + start = lineno - 1 - context//2 + try: + lines, lnum = findsource(frame) + except IOError: + lines = index = None + else: + start = max(start, 1) + start = max(0, min(start, len(lines) - context)) + lines = lines[start:start+context] + index = lineno - 1 - start + else: + lines = index = None + + return Traceback(filename, lineno, frame.f_code.co_name, lines, index) def getlineno(frame): """Get the line number from a frame object, allowing for optimization.""" - # Written by Marc-Andr Lemburg; revised by Jim Hugunin and Fredrik Lundh. - lineno = frame.f_lineno - code = frame.f_code - if hasattr(code, 'co_lnotab'): - table = code.co_lnotab - lineno = code.co_firstlineno - addr = 0 - for i in range(0, len(table), 2): - addr = addr + ord(table[i]) - if addr > frame.f_lasti: break - lineno = lineno + ord(table[i + 1]) - return lineno + # FrameType.f_lineno is now a descriptor that grovels co_lnotab + return frame.f_lineno def getouterframes(frame, context=1): """Get a list of records for a frame and all higher (calling) frames. @@ -770,19 +1045,15 @@ tb = tb.tb_next return framelist -def currentframe(): - """Return the frame object for the caller's stack frame.""" - try: - raise 'catch me' - except: - return sys.exc_traceback.tb_frame.f_back #@UndefinedVariable - -if hasattr(sys, '_getframe'): currentframe = sys._getframe +if hasattr(sys, '_getframe'): + currentframe = sys._getframe +else: + currentframe = lambda _=None: None def stack(context=1): """Return a list of records for the stack above the caller's frame.""" - return getouterframes(currentframe().f_back, context) + return getouterframes(sys._getframe(1), context) def trace(context=1): """Return a list of records for the stack below the current exception.""" - return getinnerframes(sys.exc_traceback, context) #@UndefinedVariable + return getinnerframes(sys.exc_info()[2], context) diff -Nru pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_pkgutil_old.py pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_pkgutil_old.py --- pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_pkgutil_old.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_pkgutil_old.py 2019-03-19 14:23:58.000000000 +0000 @@ -540,7 +540,7 @@ if os.path.isfile(pkgfile): try: f = open(pkgfile) - except IOError, msg: + except IOError as msg: sys.stderr.write("Can't open %s: %s\n" % (pkgfile, msg)) else: diff -Nru pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_SimpleXMLRPCServer.py pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_SimpleXMLRPCServer.py --- pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_SimpleXMLRPCServer.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_SimpleXMLRPCServer.py 2019-03-19 14:23:58.000000000 +0000 @@ -260,7 +260,7 @@ response = (response,) response = xmlrpclib.dumps(response, methodresponse=1, allow_none=self.allow_none, encoding=self.encoding) - except Fault, fault: + except Fault as fault: response = xmlrpclib.dumps(fault, allow_none=self.allow_none, encoding=self.encoding) except: @@ -363,7 +363,7 @@ # XXX A marshalling error in any response will fail the entire # multicall. If someone cares they should fix this. results.append([self._dispatch(method_name, params)]) - except Fault, fault: + except Fault as fault: results.append( {'faultCode' : fault.faultCode, 'faultString' : fault.faultString} diff -Nru pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_SocketServer.py pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_SocketServer.py --- pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_SocketServer.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_SocketServer.py 2019-03-19 14:23:58.000000000 +0000 @@ -336,12 +336,12 @@ The default is to print a traceback and continue. """ - print '-'*40 - print 'Exception happened during processing of request from', - print client_address + print('-'*40) + print('Exception happened during processing of request from') + print(client_address) import traceback traceback.print_exc() # XXX But this goes to stderr! - print '-'*40 + print('-'*40) class TCPServer(BaseServer): @@ -528,7 +528,7 @@ if not pid: continue try: self.active_children.remove(pid) - except ValueError, e: + except ValueError as e: raise ValueError('%s. x=%d and list=%r' % (e.message, pid, self.active_children)) diff -Nru pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_uuid_old.py pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_uuid_old.py --- pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_uuid_old.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_uuid_old.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,541 +0,0 @@ -r"""UUID objects (universally unique identifiers) according to RFC 4122. - -This module provides immutable UUID objects (class UUID) and the functions -uuid1(), uuid3(), uuid4(), uuid5() for generating version 1, 3, 4, and 5 -UUIDs as specified in RFC 4122. - -If all you want is a unique ID, you should probably call uuid1() or uuid4(). -Note that uuid1() may compromise privacy since it creates a UUID containing -the computer's network address. uuid4() creates a random UUID. - -Typical usage: - - >>> import uuid - - # make a UUID based on the host ID and current time - >>> uuid.uuid1() - UUID('a8098c1a-f86e-11da-bd1a-00112444be1e') - - # make a UUID using an MD5 hash of a namespace UUID and a name - >>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org') - UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e') - - # make a random UUID - >>> uuid.uuid4() - UUID('16fd2706-8baf-433b-82eb-8c7fada847da') - - # make a UUID using a SHA-1 hash of a namespace UUID and a name - >>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org') - UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d') - - # make a UUID from a string of hex digits (braces and hyphens ignored) - >>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}') - - # convert a UUID to a string of hex digits in standard form - >>> str(x) - '00010203-0405-0607-0809-0a0b0c0d0e0f' - - # get the raw 16 bytes of the UUID - >>> x.bytes - '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' - - # make a UUID from a 16-byte string - >>> uuid.UUID(bytes=x.bytes) - UUID('00010203-0405-0607-0809-0a0b0c0d0e0f') -""" - -__author__ = 'Ka-Ping Yee ' - -RESERVED_NCS, RFC_4122, RESERVED_MICROSOFT, RESERVED_FUTURE = [ - 'reserved for NCS compatibility', 'specified in RFC 4122', - 'reserved for Microsoft compatibility', 'reserved for future definition'] - -class UUID(object): - """Instances of the UUID class represent UUIDs as specified in RFC 4122. - UUID objects are immutable, hashable, and usable as dictionary keys. - Converting a UUID to a string with str() yields something in the form - '12345678-1234-1234-1234-123456789abc'. The UUID constructor accepts - five possible forms: a similar string of hexadecimal digits, or a tuple - of six integer fields (with 32-bit, 16-bit, 16-bit, 8-bit, 8-bit, and - 48-bit values respectively) as an argument named 'fields', or a string - of 16 bytes (with all the integer fields in big-endian order) as an - argument named 'bytes', or a string of 16 bytes (with the first three - fields in little-endian order) as an argument named 'bytes_le', or a - single 128-bit integer as an argument named 'int'. - - UUIDs have these read-only attributes: - - bytes the UUID as a 16-byte string (containing the six - integer fields in big-endian byte order) - - bytes_le the UUID as a 16-byte string (with time_low, time_mid, - and time_hi_version in little-endian byte order) - - fields a tuple of the six integer fields of the UUID, - which are also available as six individual attributes - and two derived attributes: - - time_low the first 32 bits of the UUID - time_mid the next 16 bits of the UUID - time_hi_version the next 16 bits of the UUID - clock_seq_hi_variant the next 8 bits of the UUID - clock_seq_low the next 8 bits of the UUID - node the last 48 bits of the UUID - - time the 60-bit timestamp - clock_seq the 14-bit sequence number - - hex the UUID as a 32-character hexadecimal string - - int the UUID as a 128-bit integer - - urn the UUID as a URN as specified in RFC 4122 - - variant the UUID variant (one of the constants RESERVED_NCS, - RFC_4122, RESERVED_MICROSOFT, or RESERVED_FUTURE) - - version the UUID version number (1 through 5, meaningful only - when the variant is RFC_4122) - """ - - def __init__(self, hex=None, bytes=None, bytes_le=None, fields=None, - int=None, version=None): - r"""Create a UUID from either a string of 32 hexadecimal digits, - a string of 16 bytes as the 'bytes' argument, a string of 16 bytes - in little-endian order as the 'bytes_le' argument, a tuple of six - integers (32-bit time_low, 16-bit time_mid, 16-bit time_hi_version, - 8-bit clock_seq_hi_variant, 8-bit clock_seq_low, 48-bit node) as - the 'fields' argument, or a single 128-bit integer as the 'int' - argument. When a string of hex digits is given, curly braces, - hyphens, and a URN prefix are all optional. For example, these - expressions all yield the same UUID: - - UUID('{12345678-1234-5678-1234-567812345678}') - UUID('12345678123456781234567812345678') - UUID('urn:uuid:12345678-1234-5678-1234-567812345678') - UUID(bytes='\x12\x34\x56\x78'*4) - UUID(bytes_le='\x78\x56\x34\x12\x34\x12\x78\x56' + - '\x12\x34\x56\x78\x12\x34\x56\x78') - UUID(fields=(0x12345678, 0x1234, 0x5678, 0x12, 0x34, 0x567812345678)) - UUID(int=0x12345678123456781234567812345678) - - Exactly one of 'hex', 'bytes', 'bytes_le', 'fields', or 'int' must - be given. The 'version' argument is optional; if given, the resulting - UUID will have its variant and version set according to RFC 4122, - overriding the given 'hex', 'bytes', 'bytes_le', 'fields', or 'int'. - """ - - if [hex, bytes, bytes_le, fields, int].count(None) != 4: - raise TypeError('need one of hex, bytes, bytes_le, fields, or int') - if hex is not None: - hex = hex.replace('urn:', '').replace('uuid:', '') - hex = hex.strip('{}').replace('-', '') - if len(hex) != 32: - raise ValueError('badly formed hexadecimal UUID string') - int = long(hex, 16) - if bytes_le is not None: - if len(bytes_le) != 16: - raise ValueError('bytes_le is not a 16-char string') - bytes = (bytes_le[3] + bytes_le[2] + bytes_le[1] + bytes_le[0] + - bytes_le[5] + bytes_le[4] + bytes_le[7] + bytes_le[6] + - bytes_le[8:]) - if bytes is not None: - if len(bytes) != 16: - raise ValueError('bytes is not a 16-char string') - int = long(('%02x'*16) % tuple(map(ord, bytes)), 16) - if fields is not None: - if len(fields) != 6: - raise ValueError('fields is not a 6-tuple') - (time_low, time_mid, time_hi_version, - clock_seq_hi_variant, clock_seq_low, node) = fields - if not 0 <= time_low < 1<<32L: - raise ValueError('field 1 out of range (need a 32-bit value)') - if not 0 <= time_mid < 1<<16L: - raise ValueError('field 2 out of range (need a 16-bit value)') - if not 0 <= time_hi_version < 1<<16L: - raise ValueError('field 3 out of range (need a 16-bit value)') - if not 0 <= clock_seq_hi_variant < 1<<8L: - raise ValueError('field 4 out of range (need an 8-bit value)') - if not 0 <= clock_seq_low < 1<<8L: - raise ValueError('field 5 out of range (need an 8-bit value)') - if not 0 <= node < 1<<48L: - raise ValueError('field 6 out of range (need a 48-bit value)') - clock_seq = (clock_seq_hi_variant << 8L) | clock_seq_low - int = ((time_low << 96L) | (time_mid << 80L) | - (time_hi_version << 64L) | (clock_seq << 48L) | node) - if int is not None: - if not 0 <= int < 1<<128L: - raise ValueError('int is out of range (need a 128-bit value)') - if version is not None: - if not 1 <= version <= 5: - raise ValueError('illegal version number') - # Set the variant to RFC 4122. - int &= ~(0xc000 << 48L) - int |= 0x8000 << 48L - # Set the version number. - int &= ~(0xf000 << 64L) - int |= version << 76L - self.__dict__['int'] = int - - def __cmp__(self, other): - if isinstance(other, UUID): - return cmp(self.int, other.int) - return NotImplemented - - def __hash__(self): - return hash(self.int) - - def __int__(self): - return self.int - - def __repr__(self): - return 'UUID(%r)' % str(self) - - def __setattr__(self, name, value): - raise TypeError('UUID objects are immutable') - - def __str__(self): - hex = '%032x' % self.int - return '%s-%s-%s-%s-%s' % ( - hex[:8], hex[8:12], hex[12:16], hex[16:20], hex[20:]) - - def get_bytes(self): - bytes = '' - for shift in range(0, 128, 8): - bytes = chr((self.int >> shift) & 0xff) + bytes - return bytes - - bytes = property(get_bytes) - - def get_bytes_le(self): - bytes = self.bytes - return (bytes[3] + bytes[2] + bytes[1] + bytes[0] + - bytes[5] + bytes[4] + bytes[7] + bytes[6] + bytes[8:]) - - bytes_le = property(get_bytes_le) - - def get_fields(self): - return (self.time_low, self.time_mid, self.time_hi_version, - self.clock_seq_hi_variant, self.clock_seq_low, self.node) - - fields = property(get_fields) - - def get_time_low(self): - return self.int >> 96L - - time_low = property(get_time_low) - - def get_time_mid(self): - return (self.int >> 80L) & 0xffff - - time_mid = property(get_time_mid) - - def get_time_hi_version(self): - return (self.int >> 64L) & 0xffff - - time_hi_version = property(get_time_hi_version) - - def get_clock_seq_hi_variant(self): - return (self.int >> 56L) & 0xff - - clock_seq_hi_variant = property(get_clock_seq_hi_variant) - - def get_clock_seq_low(self): - return (self.int >> 48L) & 0xff - - clock_seq_low = property(get_clock_seq_low) - - def get_time(self): - return (((self.time_hi_version & 0x0fffL) << 48L) | - (self.time_mid << 32L) | self.time_low) - - time = property(get_time) - - def get_clock_seq(self): - return (((self.clock_seq_hi_variant & 0x3fL) << 8L) | - self.clock_seq_low) - - clock_seq = property(get_clock_seq) - - def get_node(self): - return self.int & 0xffffffffffff - - node = property(get_node) - - def get_hex(self): - return '%032x' % self.int - - hex = property(get_hex) - - def get_urn(self): - return 'urn:uuid:' + str(self) - - urn = property(get_urn) - - def get_variant(self): - if not self.int & (0x8000 << 48L): - return RESERVED_NCS - elif not self.int & (0x4000 << 48L): - return RFC_4122 - elif not self.int & (0x2000 << 48L): - return RESERVED_MICROSOFT - else: - return RESERVED_FUTURE - - variant = property(get_variant) - - def get_version(self): - # The version bits are only meaningful for RFC 4122 UUIDs. - if self.variant == RFC_4122: - return int((self.int >> 76L) & 0xf) - - version = property(get_version) - -def _find_mac(command, args, hw_identifiers, get_index): - import os - for dir in ['', '/sbin/', '/usr/sbin']: - executable = os.path.join(dir, command) - if not os.path.exists(executable): - continue - - try: - # LC_ALL to get English output, 2>/dev/null to - # prevent output on stderr - cmd = 'LC_ALL=C %s %s 2>/dev/null' % (executable, args) - pipe = os.popen(cmd) - except IOError: - continue - - for line in pipe: - words = line.lower().split() - for i in range(len(words)): - if words[i] in hw_identifiers: - return int(words[get_index(i)].replace(':', ''), 16) - return None - -def _ifconfig_getnode(): - """Get the hardware address on Unix by running ifconfig.""" - - # This works on Linux ('' or '-a'), Tru64 ('-av'), but not all Unixes. - for args in ('', '-a', '-av'): - mac = _find_mac('ifconfig', args, ['hwaddr', 'ether'], lambda i: i+1) - if mac: - return mac - - import socket - ip_addr = socket.gethostbyname(socket.gethostname()) - - # Try getting the MAC addr from arp based on our IP address (Solaris). - mac = _find_mac('arp', '-an', [ip_addr], lambda i: -1) - if mac: - return mac - - # This might work on HP-UX. - mac = _find_mac('lanscan', '-ai', ['lan0'], lambda i: 0) - if mac: - return mac - - return None - -def _ipconfig_getnode(): - """Get the hardware address on Windows by running ipconfig.exe.""" - import os, re - dirs = ['', r'c:\windows\system32', r'c:\winnt\system32'] - try: - import ctypes - buffer = ctypes.create_string_buffer(300) - ctypes.windll.kernel32.GetSystemDirectoryA(buffer, 300) # @UndefinedVariable - dirs.insert(0, buffer.value.decode('mbcs')) - except: - pass - for dir in dirs: - try: - pipe = os.popen(os.path.join(dir, 'ipconfig') + ' /all') - except IOError: - continue - for line in pipe: - value = line.split(':')[-1].strip().lower() - if re.match('([0-9a-f][0-9a-f]-){5}[0-9a-f][0-9a-f]', value): - return int(value.replace('-', ''), 16) - -def _netbios_getnode(): - """Get the hardware address on Windows using NetBIOS calls. - See http://support.microsoft.com/kb/118623 for details.""" - import win32wnet, netbios - ncb = netbios.NCB() - ncb.Command = netbios.NCBENUM - ncb.Buffer = adapters = netbios.LANA_ENUM() - adapters._pack() - if win32wnet.Netbios(ncb) != 0: - return - adapters._unpack() - for i in range(adapters.length): - ncb.Reset() - ncb.Command = netbios.NCBRESET - ncb.Lana_num = ord(adapters.lana[i]) - if win32wnet.Netbios(ncb) != 0: - continue - ncb.Reset() - ncb.Command = netbios.NCBASTAT - ncb.Lana_num = ord(adapters.lana[i]) - ncb.Callname = '*'.ljust(16) - ncb.Buffer = status = netbios.ADAPTER_STATUS() - if win32wnet.Netbios(ncb) != 0: - continue - status._unpack() - bytes = map(ord, status.adapter_address) - return ((bytes[0]<<40L) + (bytes[1]<<32L) + (bytes[2]<<24L) + - (bytes[3]<<16L) + (bytes[4]<<8L) + bytes[5]) - -# Thanks to Thomas Heller for ctypes and for his help with its use here. - -# If ctypes is available, use it to find system routines for UUID generation. -_uuid_generate_random = _uuid_generate_time = _UuidCreate = None -try: - import ctypes, ctypes.util - _buffer = ctypes.create_string_buffer(16) - - # The uuid_generate_* routines are provided by libuuid on at least - # Linux and FreeBSD, and provided by libc on Mac OS X. - for libname in ['uuid', 'c']: - try: - lib = ctypes.CDLL(ctypes.util.find_library(libname)) - except: - continue - if hasattr(lib, 'uuid_generate_random'): - _uuid_generate_random = lib.uuid_generate_random - if hasattr(lib, 'uuid_generate_time'): - _uuid_generate_time = lib.uuid_generate_time - - # On Windows prior to 2000, UuidCreate gives a UUID containing the - # hardware address. On Windows 2000 and later, UuidCreate makes a - # random UUID and UuidCreateSequential gives a UUID containing the - # hardware address. These routines are provided by the RPC runtime. - # NOTE: at least on Tim's WinXP Pro SP2 desktop box, while the last - # 6 bytes returned by UuidCreateSequential are fixed, they don't appear - # to bear any relationship to the MAC address of any network device - # on the box. - try: - lib = ctypes.windll.rpcrt4 - except: - lib = None - _UuidCreate = getattr(lib, 'UuidCreateSequential', - getattr(lib, 'UuidCreate', None)) -except: - pass - -def _unixdll_getnode(): - """Get the hardware address on Unix using ctypes.""" - _uuid_generate_time(_buffer) - return UUID(bytes=_buffer.raw).node - -def _windll_getnode(): - """Get the hardware address on Windows using ctypes.""" - if _UuidCreate(_buffer) == 0: - return UUID(bytes=_buffer.raw).node - -def _random_getnode(): - """Get a random node ID, with eighth bit set as suggested by RFC 4122.""" - import random - return random.randrange(0, 1<<48L) | 0x010000000000L - -_node = None - -def getnode(): - """Get the hardware address as a 48-bit positive integer. - - The first time this runs, it may launch a separate program, which could - be quite slow. If all attempts to obtain the hardware address fail, we - choose a random 48-bit number with its eighth bit set to 1 as recommended - in RFC 4122. - """ - - global _node - if _node is not None: - return _node - - import sys - if sys.platform == 'win32': - getters = [_windll_getnode, _netbios_getnode, _ipconfig_getnode] - else: - getters = [_unixdll_getnode, _ifconfig_getnode] - - for getter in getters + [_random_getnode]: - try: - _node = getter() - except: - continue - if _node is not None: - return _node - -_last_timestamp = None - -def uuid1(node=None, clock_seq=None): - """Generate a UUID from a host ID, sequence number, and the current time. - If 'node' is not given, getnode() is used to obtain the hardware - address. If 'clock_seq' is given, it is used as the sequence number; - otherwise a random 14-bit sequence number is chosen.""" - - # When the system provides a version-1 UUID generator, use it (but don't - # use UuidCreate here because its UUIDs don't conform to RFC 4122). - if _uuid_generate_time and node is clock_seq is None: - _uuid_generate_time(_buffer) - return UUID(bytes=_buffer.raw) - - global _last_timestamp - import time - nanoseconds = int(time.time() * 1e9) - # 0x01b21dd213814000 is the number of 100-ns intervals between the - # UUID epoch 1582-10-15 00:00:00 and the Unix epoch 1970-01-01 00:00:00. - timestamp = int(nanoseconds/100) + 0x01b21dd213814000L - if timestamp <= _last_timestamp: - timestamp = _last_timestamp + 1 - _last_timestamp = timestamp - if clock_seq is None: - import random - clock_seq = random.randrange(1<<14L) # instead of stable storage - time_low = timestamp & 0xffffffffL - time_mid = (timestamp >> 32L) & 0xffffL - time_hi_version = (timestamp >> 48L) & 0x0fffL - clock_seq_low = clock_seq & 0xffL - clock_seq_hi_variant = (clock_seq >> 8L) & 0x3fL - if node is None: - node = getnode() - return UUID(fields=(time_low, time_mid, time_hi_version, - clock_seq_hi_variant, clock_seq_low, node), version=1) - -def uuid3(namespace, name): - """Generate a UUID from the MD5 hash of a namespace UUID and a name.""" - import md5 - hash = md5.md5(namespace.bytes + name).digest() - return UUID(bytes=hash[:16], version=3) - -def uuid4(): - """Generate a random UUID.""" - - # When the system provides a version-4 UUID generator, use it. - if _uuid_generate_random: - _uuid_generate_random(_buffer) - return UUID(bytes=_buffer.raw) - - # Otherwise, get randomness from urandom or the 'random' module. - try: - import os - return UUID(bytes=os.urandom(16), version=4) - except: - import random - bytes = [chr(random.randrange(256)) for i in range(16)] - return UUID(bytes=bytes, version=4) - -def uuid5(namespace, name): - """Generate a UUID from the SHA-1 hash of a namespace UUID and a name.""" - import sha - hash = sha.sha(namespace.bytes + name).digest() - return UUID(bytes=hash[:16], version=5) - -# The following standard UUIDs are for use with uuid3() or uuid5(). - -NAMESPACE_DNS = UUID('6ba7b810-9dad-11d1-80b4-00c04fd430c8') -NAMESPACE_URL = UUID('6ba7b811-9dad-11d1-80b4-00c04fd430c8') -NAMESPACE_OID = UUID('6ba7b812-9dad-11d1-80b4-00c04fd430c8') -NAMESPACE_X500 = UUID('6ba7b814-9dad-11d1-80b4-00c04fd430c8') diff -Nru pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_xmlrpclib.py pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_xmlrpclib.py --- pycharm-2018.3.5/helpers/pydev/_pydev_imps/_pydev_xmlrpclib.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/_pydev_imps/_pydev_xmlrpclib.py 2019-03-19 14:23:58.000000000 +0000 @@ -1,8 +1,6 @@ -#Just a copy of the version in python 2.5 to be used if it's not available in jython 2.1 -import sys - # # XML-RPC CLIENT LIBRARY +# $Id$ # # an XML-RPC client interface for Python. # @@ -51,6 +49,7 @@ # 2003-07-12 gp Correct marshalling of Faults # 2003-10-31 mvl Add multicall support # 2004-08-20 mvl Bump minimum supported Python version to 2.1 +# 2014-12-02 ch/doko Add workaround for gzip bomb vulnerability # # Copyright (c) 1999-2002 by Secret Labs AB. # Copyright (c) 1999-2002 by Fredrik Lundh. @@ -141,6 +140,13 @@ import re, string, time, operator from types import * +import socket +import errno +import httplib +try: + import gzip +except ImportError: + gzip = None #python can be built without zlib/gzip support # -------------------------------------------------------------------- # Internal stuff @@ -157,7 +163,7 @@ try: _bool_is_builtin = False.__class__.__name__ == "bool" -except (NameError, AttributeError): +except NameError: _bool_is_builtin = 0 def _decode(data, encoding, is8bit=re.compile("[\x80-\xff]").search): @@ -185,32 +191,28 @@ __version__ = "1.0.1" # xmlrpc integer limits -try: - long -except NameError: - long = int -MAXINT = long(2) ** 31 - 1 -MININT = long(-2) ** 31 +MAXINT = 2L**31-1 +MININT = -2L**31 # -------------------------------------------------------------------- # Error constants (from Dan Libby's specification at # http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php) # Ranges of errors -PARSE_ERROR = -32700 -SERVER_ERROR = -32600 +PARSE_ERROR = -32700 +SERVER_ERROR = -32600 APPLICATION_ERROR = -32500 -SYSTEM_ERROR = -32400 -TRANSPORT_ERROR = -32300 +SYSTEM_ERROR = -32400 +TRANSPORT_ERROR = -32300 # Specific errors -NOT_WELLFORMED_ERROR = -32700 -UNSUPPORTED_ENCODING = -32701 +NOT_WELLFORMED_ERROR = -32700 +UNSUPPORTED_ENCODING = -32701 INVALID_ENCODING_CHAR = -32702 -INVALID_XMLRPC = -32600 -METHOD_NOT_FOUND = -32601 +INVALID_XMLRPC = -32600 +METHOD_NOT_FOUND = -32601 INVALID_METHOD_PARAMS = -32602 -INTERNAL_ERROR = -32603 +INTERNAL_ERROR = -32603 # -------------------------------------------------------------------- # Exceptions @@ -243,9 +245,9 @@ self.headers = headers def __repr__(self): return ( - "" % - (self.url, self.errcode, self.errmsg) - ) + "" % + (self.url, self.errcode, self.errmsg) + ) ## # Indicates a broken XML-RPC response package. This exception is @@ -273,9 +275,9 @@ self.faultString = faultString def __repr__(self): return ( - "" % - (self.faultCode, repr(self.faultString)) - ) + "" % + (self.faultCode, repr(self.faultString)) + ) # -------------------------------------------------------------------- # Special values @@ -288,10 +290,13 @@ # @param value A boolean value. Any true value is interpreted as True, # all other values are interpreted as False. +from sys import modules +mod_dict = modules[__name__].__dict__ if _bool_is_builtin: - boolean = Boolean = bool #@UndefinedVariable + boolean = Boolean = bool # to avoid breaking code which references xmlrpclib.{True,False} - True, False = True, False + mod_dict['True'] = True + mod_dict['False'] = False else: class Boolean: """Boolean-value wrapper. @@ -299,7 +304,7 @@ Use True or False to generate a "boolean" XML-RPC value. """ - def __init__(self, value=0): + def __init__(self, value = 0): self.value = operator.truth(value) def encode(self, out): @@ -322,7 +327,8 @@ def __nonzero__(self): return self.value - True, False = Boolean(1), Boolean(0) + mod_dict['True'] = Boolean(1) + mod_dict['False'] = Boolean(0) ## # Map true or false value to XML-RPC boolean values. @@ -339,6 +345,8 @@ """Convert any Python value to XML-RPC 'boolean'.""" return _truefalse[operator.truth(value)] +del modules, mod_dict + ## # Wrapper for XML-RPC DateTime values. This converts a time value to # the format used by XML-RPC. @@ -352,6 +360,20 @@ # @param value The time, given as an ISO 8601 string, a time # tuple, or a integer time value. +def _strftime(value): + if datetime: + if isinstance(value, datetime.datetime): + return "%04d%02d%02dT%02d:%02d:%02d" % ( + value.year, value.month, value.day, + value.hour, value.minute, value.second) + + if not isinstance(value, (TupleType, time.struct_time)): + if value == 0: + value = time.time() + value = time.localtime(value) + + return "%04d%02d%02dT%02d:%02d:%02d" % value[:6] + class DateTime: """DateTime wrapper for an ISO 8601 string or time tuple or localtime integer value to generate 'dateTime.iso8601' XML-RPC @@ -359,28 +381,62 @@ """ def __init__(self, value=0): - if not isinstance(value, StringType): - if datetime and isinstance(value, datetime.datetime): - self.value = value.strftime("%Y%m%dT%H:%M:%S") - return - if datetime and isinstance(value, datetime.date): - self.value = value.strftime("%Y%m%dT%H:%M:%S") - return - if datetime and isinstance(value, datetime.time): - today = datetime.datetime.now().strftime("%Y%m%d") - self.value = value.strftime(today + "T%H:%M:%S") - return - if not isinstance(value, (TupleType, time.struct_time)): #@UndefinedVariable - if value == 0: - value = time.time() - value = time.localtime(value) - value = time.strftime("%Y%m%dT%H:%M:%S", value) - self.value = value + if isinstance(value, StringType): + self.value = value + else: + self.value = _strftime(value) - def __cmp__(self, other): + def make_comparable(self, other): if isinstance(other, DateTime): - other = other.value - return cmp(self.value, other) + s = self.value + o = other.value + elif datetime and isinstance(other, datetime.datetime): + s = self.value + o = other.strftime("%Y%m%dT%H:%M:%S") + elif isinstance(other, (str, unicode)): + s = self.value + o = other + elif hasattr(other, "timetuple"): + s = self.timetuple() + o = other.timetuple() + else: + otype = (hasattr(other, "__class__") + and other.__class__.__name__ + or type(other)) + raise TypeError("Can't compare %s and %s" % + (self.__class__.__name__, otype)) + return s, o + + def __lt__(self, other): + s, o = self.make_comparable(other) + return s < o + + def __le__(self, other): + s, o = self.make_comparable(other) + return s <= o + + def __gt__(self, other): + s, o = self.make_comparable(other) + return s > o + + def __ge__(self, other): + s, o = self.make_comparable(other) + return s >= o + + def __eq__(self, other): + s, o = self.make_comparable(other) + return s == o + + def __ne__(self, other): + s, o = self.make_comparable(other) + return s != o + + def timetuple(self): + return time.strptime(self.value, "%Y%m%dT%H:%M:%S") + + def __cmp__(self, other): + s, o = self.make_comparable(other) + return cmp(s, o) ## # Get date/time value. @@ -409,7 +465,7 @@ return value def _datetime_type(data): - t = time.strptime(data, "%Y%m%dT%H:%M:%S") #@UndefinedVariable + t = time.strptime(data, "%Y%m%dT%H:%M:%S") return datetime.datetime(*tuple(t)[:6]) ## @@ -466,78 +522,27 @@ try: # optional xmlrpclib accelerator - import _xmlrpclib #@UnresolvedImport + import _xmlrpclib FastParser = _xmlrpclib.Parser FastUnmarshaller = _xmlrpclib.Unmarshaller except (AttributeError, ImportError): FastParser = FastUnmarshaller = None try: - import _xmlrpclib #@UnresolvedImport + import _xmlrpclib FastMarshaller = _xmlrpclib.Marshaller except (AttributeError, ImportError): FastMarshaller = None -# -# the SGMLOP parser is about 15x faster than Python's builtin -# XML parser. SGMLOP sources can be downloaded from: -# -# http://www.pythonware.com/products/xml/sgmlop.htm -# - -try: - import sgmlop - if not hasattr(sgmlop, "XMLParser"): - raise ImportError() -except ImportError: - SgmlopParser = None # sgmlop accelerator not available -else: - class SgmlopParser: - def __init__(self, target): - - # setup callbacks - self.finish_starttag = target.start - self.finish_endtag = target.end - self.handle_data = target.data - self.handle_xml = target.xml - - # activate parser - self.parser = sgmlop.XMLParser() - self.parser.register(self) - self.feed = self.parser.feed - self.entity = { - "amp": "&", "gt": ">", "lt": "<", - "apos": "'", "quot": '"' - } - - def close(self): - try: - self.parser.close() - finally: - self.parser = self.feed = None # nuke circular reference - - def handle_proc(self, tag, attr): - m = re.search("encoding\s*=\s*['\"]([^\"']+)[\"']", attr) #@UndefinedVariable - if m: - self.handle_xml(m.group(1), 1) - - def handle_entityref(self, entity): - # entity - try: - self.handle_data(self.entity[entity]) - except KeyError: - self.handle_data("&%s;" % entity) - try: from xml.parsers import expat if not hasattr(expat, "ParserCreate"): - raise ImportError() + raise ImportError except ImportError: ExpatParser = None # expat not available else: class ExpatParser: - # fast expat parser for Python 2.0 and later. this is about - # 50% slower than sgmlop, on roundtrip testing + # fast expat parser for Python 2.0 and later. def __init__(self, target): self._parser = parser = expat.ParserCreate(None, None) self._target = target @@ -558,8 +563,7 @@ class SlowParser: """Default XML parser (based on xmllib.XMLParser).""" - # this is about 10 times slower than sgmlop, on roundtrip - # testing. + # this is the slowest parser. def __init__(self, target): import xmllib # lazy subclassing (!) if xmllib.XMLParser not in SlowParser.__bases__: @@ -636,20 +640,30 @@ try: f = self.dispatch[type(value)] except KeyError: - raise TypeError("cannot marshal %s objects" % type(value)) - else: - f(self, value, write) + # check if this object can be marshalled as a structure + try: + value.__dict__ + except: + raise TypeError, "cannot marshal %s objects" % type(value) + # check if this class is a sub-class of a basic type, + # because we don't know how to marshal these types + # (e.g. a string sub-class) + for type_ in type(value).__mro__: + if type_ in self.dispatch.keys(): + raise TypeError, "cannot marshal %s objects" % type(value) + f = self.dispatch[InstanceType] + f(self, value, write) def dump_nil (self, value, write): if not self.allow_none: - raise TypeError("cannot marshal None unless allow_none is enabled") + raise TypeError, "cannot marshal None unless allow_none is enabled" write("") dispatch[NoneType] = dump_nil def dump_int(self, value, write): # in case ints are > 32 bits if value > MAXINT or value < MININT: - raise OverflowError("int exceeds XML-RPC limits") + raise OverflowError, "int exceeds XML-RPC limits" write("") write(str(value)) write("\n") @@ -660,11 +674,11 @@ write("") write(value and "1" or "0") write("\n") - dispatch[bool] = dump_bool #@UndefinedVariable + dispatch[bool] = dump_bool def dump_long(self, value, write): if value > MAXINT or value < MININT: - raise OverflowError("long int exceeds XML-RPC limits") + raise OverflowError, "long int exceeds XML-RPC limits" write("") write(str(int(value))) write("\n") @@ -692,8 +706,8 @@ def dump_array(self, value, write): i = id(value) - if self.memo.has_key(i): - raise TypeError("cannot marshal recursive sequences") + if i in self.memo: + raise TypeError, "cannot marshal recursive sequences" self.memo[i] = None dump = self.__dump write("\n") @@ -706,8 +720,8 @@ def dump_struct(self, value, write, escape=escape): i = id(value) - if self.memo.has_key(i): - raise TypeError("cannot marshal recursive dictionaries") + if i in self.memo: + raise TypeError, "cannot marshal recursive dictionaries" self.memo[i] = None dump = self.__dump write("\n") @@ -717,7 +731,7 @@ if unicode and type(k) is UnicodeType: k = k.encode(self.encoding) else: - raise TypeError("dictionary key must be string") + raise TypeError, "dictionary key must be string" write("%s\n" % escape(k)) dump(v, write) write("\n") @@ -728,23 +742,10 @@ if datetime: def dump_datetime(self, value, write): write("") - write(value.strftime("%Y%m%dT%H:%M:%S")) + write(_strftime(value)) write("\n") dispatch[datetime.datetime] = dump_datetime - def dump_date(self, value, write): - write("") - write(value.strftime("%Y%m%dT00:00:00")) - write("\n") - dispatch[datetime.date] = dump_date - - def dump_time(self, value, write): - write("") - write(datetime.datetime.now().date().strftime("%Y%m%dT")) - write(value.strftime("%H:%M:%S")) - write("\n") - dispatch[datetime.time] = dump_time - def dump_instance(self, value, write): # check for special wrappers if value.__class__ in WRAPPERS: @@ -783,7 +784,7 @@ self.append = self._stack.append self._use_datetime = use_datetime if use_datetime and not datetime: - raise ValueError("the datetime module is not available") + raise ValueError, "the datetime module is not available" def close(self): # return response tuple and target method @@ -850,7 +851,7 @@ elif data == "1": self.append(True) else: - raise TypeError("bad boolean value") + raise TypeError, "bad boolean value" self._value = 0 dispatch["boolean"] = end_boolean @@ -858,6 +859,7 @@ self.append(int(data)) self._value = 0 dispatch["i4"] = end_int + dispatch["i8"] = end_int dispatch["int"] = end_int def end_double(self, data): @@ -886,7 +888,7 @@ dict = {} items = self._stack[mark:] for i in range(0, len(items), 2): - dict[_stringify(items[i])] = items[i + 1] + dict[_stringify(items[i])] = items[i+1] self._stack[mark:] = [dict] self._value = 0 dispatch["struct"] = end_struct @@ -944,7 +946,7 @@ class MultiCallIterator: """Iterates over the results of a multicall. Exceptions are - thrown in response to xmlrpc faults.""" + raised in response to xmlrpc faults.""" def __init__(self, results): self.results = results @@ -956,7 +958,8 @@ elif type(item) == type([]): return item[0] else: - raise ValueError("unexpected type in multicall result") + raise ValueError, \ + "unexpected type in multicall result" class MultiCall: """server -> a object used to boxcar method calls @@ -1010,7 +1013,7 @@ to an unmarshalling object. Return both objects. """ if use_datetime and not datetime: - raise ValueError("the datetime module is not available") + raise ValueError, "the datetime module is not available" if FastParser and FastUnmarshaller: if use_datetime: mkdatetime = _datetime_type @@ -1022,8 +1025,6 @@ target = Unmarshaller(use_datetime=use_datetime) if FastParser: parser = FastParser(target) - elif SgmlopParser: - parser = SgmlopParser(target) elif ExpatParser: parser = ExpatParser(target) else: @@ -1067,7 +1068,7 @@ """ assert isinstance(params, TupleType) or isinstance(params, Fault), \ - "argument must be tuple or Fault instance" + "argument must be tuple or Fault instance" if isinstance(params, Fault): methodresponse = 1 @@ -1100,7 +1101,7 @@ "", methodname, "\n", data, "\n" - ) + ) elif methodresponse: # a method response, or a fault structure data = ( @@ -1108,7 +1109,7 @@ "\n", data, "\n" - ) + ) else: return data # return as is return string.join(data, "") @@ -1136,6 +1137,86 @@ p.close() return u.close(), u.getmethodname() +## +# Encode a string using the gzip content encoding such as specified by the +# Content-Encoding: gzip +# in the HTTP header, as described in RFC 1952 +# +# @param data the unencoded data +# @return the encoded data + +def gzip_encode(data): + """data -> gzip encoded data + + Encode data using the gzip content encoding as described in RFC 1952 + """ + if not gzip: + raise NotImplementedError + f = StringIO.StringIO() + gzf = gzip.GzipFile(mode="wb", fileobj=f, compresslevel=1) + gzf.write(data) + gzf.close() + encoded = f.getvalue() + f.close() + return encoded + +## +# Decode a string using the gzip content encoding such as specified by the +# Content-Encoding: gzip +# in the HTTP header, as described in RFC 1952 +# +# @param data The encoded data +# @keyparam max_decode Maximum bytes to decode (20MB default), use negative +# values for unlimited decoding +# @return the unencoded data +# @raises ValueError if data is not correctly coded. +# @raises ValueError if max gzipped payload length exceeded + +def gzip_decode(data, max_decode=20971520): + """gzip encoded data -> unencoded data + + Decode data using the gzip content encoding as described in RFC 1952 + """ + if not gzip: + raise NotImplementedError + f = StringIO.StringIO(data) + gzf = gzip.GzipFile(mode="rb", fileobj=f) + try: + if max_decode < 0: # no limit + decoded = gzf.read() + else: + decoded = gzf.read(max_decode + 1) + except IOError: + raise ValueError("invalid data") + f.close() + gzf.close() + if max_decode >= 0 and len(decoded) > max_decode: + raise ValueError("max gzipped payload length exceeded") + return decoded + +## +# Return a decoded file-like object for the gzip encoding +# as described in RFC 1952. +# +# @param response A stream supporting a read() method +# @return a file-like object that the decoded data can be read() from + +class GzipDecodedResponse(gzip.GzipFile if gzip else object): + """a file-like object to decode a response encoded with the gzip + method, as described in RFC 1952. + """ + def __init__(self, response): + #response doesn't support tell() and read(), required by + #GzipFile + if not gzip: + raise NotImplementedError + self.stringio = StringIO.StringIO(response.read()) + gzip.GzipFile.__init__(self, mode="rb", fileobj=self.stringio) + + def close(self): + gzip.GzipFile.close(self) + self.stringio.close() + # -------------------------------------------------------------------- # request dispatcher @@ -1163,11 +1244,21 @@ # client identifier (may be overridden) user_agent = "xmlrpclib.py/%s (by www.pythonware.com)" % __version__ + #if true, we'll request gzip encoding + accept_gzip_encoding = True + + # if positive, encode request using gzip if it exceeds this threshold + # note that many server will get confused, so only use it if you know + # that they can decode such a request + encode_threshold = None #None = don't encode + def __init__(self, use_datetime=0): self._use_datetime = use_datetime - + self._connection = (None, None) + self._extra_headers = [] ## # Send a complete request, and parse the response. + # Retry request if a cached connection has disconnected. # # @param host Target host. # @param handler Target PRC handler. @@ -1176,34 +1267,59 @@ # @return Parsed response. def request(self, host, handler, request_body, verbose=0): + #retry request once if cached connection has gone cold + for i in (0, 1): + try: + return self.single_request(host, handler, request_body, verbose) + except socket.error, e: + if i or e.errno not in (errno.ECONNRESET, errno.ECONNABORTED, errno.EPIPE): + raise + except httplib.BadStatusLine: #close after we sent request + if i: + raise + + ## + # Send a complete request, and parse the response. + # + # @param host Target host. + # @param handler Target PRC handler. + # @param request_body XML-RPC request body. + # @param verbose Debugging flag. + # @return Parsed response. + + def single_request(self, host, handler, request_body, verbose=0): # issue XML-RPC request h = self.make_connection(host) if verbose: h.set_debuglevel(1) - self.send_request(h, handler, request_body) - self.send_host(h, host) - self.send_user_agent(h) - self.send_content(h, request_body) - - errcode, errmsg, headers = h.getreply() - - if errcode != 200: - raise ProtocolError( - host + handler, - errcode, errmsg, - headers - ) - - self.verbose = verbose - try: - sock = h._conn.sock - except AttributeError: - sock = None - - return self._parse_response(h.getfile(), sock) + self.send_request(h, handler, request_body) + self.send_host(h, host) + self.send_user_agent(h) + self.send_content(h, request_body) + + response = h.getresponse(buffering=True) + if response.status == 200: + self.verbose = verbose + return self.parse_response(response) + except Fault: + raise + except Exception: + # All unexpected errors leave connection in + # a strange state, so we clear it. + self.close() + raise + + #discard any response data and raise exception + if (response.getheader("content-length", 0)): + response.read() + raise ProtocolError( + host + handler, + response.status, response.reason, + response.msg, + ) ## # Create parser. @@ -1239,7 +1355,7 @@ auth = string.join(string.split(auth), "") # get rid of whitespace extra_headers = [ ("Authorization", "Basic " + auth) - ] + ] else: extra_headers = None @@ -1252,10 +1368,25 @@ # @return A connection handle. def make_connection(self, host): + #return an existing connection if possible. This allows + #HTTP/1.1 keep-alive. + if self._connection and host == self._connection[0]: + return self._connection[1] + # create a HTTP connection object from a host descriptor - import httplib - host, extra_headers, x509 = self.get_host_info(host) - return httplib.HTTP(host) + chost, self._extra_headers, x509 = self.get_host_info(host) + #store the host argument along with the connection object + self._connection = host, httplib.HTTPConnection(chost) + return self._connection[1] + + ## + # Clear any cached connection object. + # Used in the event of socket errors. + # + def close(self): + if self._connection[1]: + self._connection[1].close() + self._connection = (None, None) ## # Send request header. @@ -1265,17 +1396,24 @@ # @param request_body XML-RPC body. def send_request(self, connection, handler, request_body): - connection.putrequest("POST", handler) + if (self.accept_gzip_encoding and gzip): + connection.putrequest("POST", handler, skip_accept_encoding=True) + connection.putheader("Accept-Encoding", "gzip") + else: + connection.putrequest("POST", handler) ## # Send host name. # # @param connection Connection handle. # @param host Host name. + # + # Note: This function doesn't actually add the "Host" + # header anymore, it is done as part of the connection.putrequest() in + # send_request() above. def send_host(self, connection, host): - host, extra_headers, x509 = self.get_host_info(host) - connection.putheader("Host", host) + extra_headers = self._extra_headers if extra_headers: if isinstance(extra_headers, DictType): extra_headers = extra_headers.items() @@ -1298,10 +1436,16 @@ def send_content(self, connection, request_body): connection.putheader("Content-Type", "text/xml") + + #optionally encode the request + if (self.encode_threshold is not None and + self.encode_threshold < len(request_body) and + gzip): + connection.putheader("Content-Encoding", "gzip") + request_body = gzip_encode(request_body) + connection.putheader("Content-Length", str(len(request_body))) - connection.endheaders() - if request_body: - connection.send(request_body) + connection.endheaders(request_body) ## # Parse response. @@ -1309,37 +1453,30 @@ # @param file Stream. # @return Response tuple and target method. - def parse_response(self, file): - # compatibility interface - return self._parse_response(file, None) - - ## - # Parse response (alternate interface). This is similar to the - # parse_response method, but also provides direct access to the - # underlying socket object (where available). - # - # @param file Stream. - # @param sock Socket handle (or None, if the socket object - # could not be accessed). - # @return Response tuple and target method. + def parse_response(self, response): + # read response data from httpresponse, and parse it - def _parse_response(self, file, sock): - # read response from input file/socket, and parse it + # Check for new http response object, else it is a file object + if hasattr(response,'getheader'): + if response.getheader("Content-Encoding", "") == "gzip": + stream = GzipDecodedResponse(response) + else: + stream = response + else: + stream = response p, u = self.getparser() while 1: - if sock: - response = sock.recv(1024) - else: - response = file.read(1024) - if not response: + data = stream.read(1024) + if not data: break if self.verbose: - sys.stdout.write("body: %s\n" % repr(response)) - p.feed(response) + print "body:", repr(data) + p.feed(data) - file.close() + if stream is not response: + stream.close() p.close() return u.close() @@ -1353,18 +1490,20 @@ # FIXME: mostly untested def make_connection(self, host): + if self._connection and host == self._connection[0]: + return self._connection[1] # create a HTTPS connection object from a host descriptor # host may be a string, or a (host, x509-dict) tuple - import httplib - host, extra_headers, x509 = self.get_host_info(host) try: - HTTPS = httplib.HTTPS + HTTPS = httplib.HTTPSConnection except AttributeError: raise NotImplementedError( "your version of httplib doesn't support HTTPS" - ) + ) else: - return HTTPS(host, None, **(x509 or {})) + chost, self._extra_headers, x509 = self.get_host_info(host) + self._connection = host, HTTPS(chost, None, **(x509 or {})) + return self._connection[1] ## # Standard server proxy. This class establishes a virtual connection @@ -1409,11 +1548,14 @@ allow_none=0, use_datetime=0): # establish a "logical" server connection + if isinstance(uri, unicode): + uri = uri.encode('ISO-8859-1') + # get the url import urllib type, uri = urllib.splittype(uri) if type not in ("http", "https"): - raise IOError("unsupported XML-RPC protocol") + raise IOError, "unsupported XML-RPC protocol" self.__host, self.__handler = urllib.splithost(uri) if not self.__handler: self.__handler = "/RPC2" @@ -1429,6 +1571,9 @@ self.__verbose = verbose self.__allow_none = allow_none + def __close(self): + self.__transport.close() + def __request(self, methodname, params): # call a method on the remote server @@ -1440,7 +1585,7 @@ self.__handler, request, verbose=self.__verbose - ) + ) if len(response) == 1: response = response[0] @@ -1449,9 +1594,9 @@ def __repr__(self): return ( - "" % - (self.__host, self.__handler) - ) + "" % + (self.__host, self.__handler) + ) __str__ = __repr__ @@ -1462,6 +1607,16 @@ # note: to call a remote object with an non-standard name, use # result getattr(server, "strange-python-name")(args) + def __call__(self, attr): + """A workaround to get special attributes on the ServerProxy + without interfering with the magic __getattr__ + """ + if attr == "close": + return self.__close + elif attr == "transport": + return self.__transport + raise AttributeError("Attribute %r not found" % (attr,)) + # compatibility Server = ServerProxy @@ -1471,23 +1626,16 @@ if __name__ == "__main__": - # simple test program (from the XML-RPC specification) + server = ServerProxy("http://localhost:8000") - # server = ServerProxy("http://localhost:8000") # local server - server = ServerProxy("http://time.xmlrpc.com/RPC2") - - sys.stdout.write('%s\n' % server) - - try: - sys.stdout.write('%s\n' % (server.currentTime.getCurrentTime(),)) - except Error: - import traceback;traceback.print_exc() + print server multi = MultiCall(server) - multi.currentTime.getCurrentTime() - multi.currentTime.getCurrentTime() + multi.pow(2, 9) + multi.add(5, 1) + multi.add(24, 11) try: for response in multi(): - sys.stdout.write('%s\n' % (response,)) - except Error: - import traceback;traceback.print_exc() + print response + except Error, v: + print "ERROR", v diff -Nru pycharm-2018.3.5/helpers/pydev/pydev_ipython/inputhookglut.py pycharm-2019.1/helpers/pydev/pydev_ipython/inputhookglut.py --- pycharm-2018.3.5/helpers/pydev/pydev_ipython/inputhookglut.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/pydev_ipython/inputhookglut.py 2019-03-19 14:23:58.000000000 +0000 @@ -95,7 +95,7 @@ def glut_int_handler(signum, frame): # Catch sigint and print the defautl message signal.signal(signal.SIGINT, signal.default_int_handler) - print '\nKeyboardInterrupt' + print('\nKeyboardInterrupt') # Need to reprint the prompt at this stage diff -Nru pycharm-2018.3.5/helpers/pydev/README.rst pycharm-2019.1/helpers/pydev/README.rst --- pycharm-2018.3.5/helpers/pydev/README.rst 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/README.rst 2019-03-19 14:23:58.000000000 +0000 @@ -9,27 +9,22 @@ bundles it (such as PyDev or PyCharm). It is however available in PyPi so that it can be installed for doing remote debugging with `pip` -- so, when -debugging a process which runs in another machine, it's possible to `pip install pydevd` and in the code use -`pydevd.settrace(host='10.1.1.1')` to connect the debugger backend to the debugger UI running in the IDE +debugging a process which runs in another machine, it's possible to `pip install pydevd-pycharm` and in the code use +`pydevd_pycharm.settrace(host='10.1.1.1')` to connect the debugger backend to the debugger UI running in the IDE (whereas previously the sources had to be manually copied from the IDE installation). -It should be compatible with Python 2.4 onwards (as well as Jython 2.2.1, IronPython and PyPy -- and +It should be compatible with Python 2.6 onwards (as well as Jython 2.7, IronPython and PyPy -- and any other variant which properly supports the Python structure for debuggers -- i.e.: sys.settrace/threading.settrace). Recent versions contain speedup modules using Cython, which are generated with a few changes in the regular files to `cythonize` the files. To update and compile the cython sources (and generate some other auto-generated files), `build_tools/build.py` should be run -- note that the resulting .pyx and .c files should be commited. -To see performance changes, see: - -https://www.speedtin.com/reports/7_pydevd_cython (performance results with cython). -https://www.speedtin.com/reports/8_pydevd_pure_python (performance results without cython). - To generate a distribution with the precompiled binaries for the IDE, `build_binaries_windows.py` should be run ( note that the environments must be pre-created as specified in that file). To generate a distribution to upload to PyPi, `python setup.py sdist bdist_wheel` should be run for each python version -which should have a wheel and afterwards `twine upload -s dist/pydevd-*` shoud be run to actually upload the contents +which should have a wheel and afterwards `twine upload -s dist/pydevd-*` should be run to actually upload the contents to PyPi. Travis (Linux CI): diff -Nru pycharm-2018.3.5/helpers/pydev/setup.py pycharm-2019.1/helpers/pydev/setup.py --- pycharm-2018.3.5/helpers/pydev/setup.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/setup.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,175 +0,0 @@ -r''' -Full setup, used to distribute the debugger backend to PyPi. - -Note that this is mostly so that users can do: - -pip install pydevd - -in a machine for doing remote-debugging, as a local installation with the IDE should have -everything already distributed. - -Reference on wheels: -https://hynek.me/articles/sharing-your-labor-of-love-pypi-quick-and-dirty/ -http://lucumr.pocoo.org/2014/1/27/python-on-wheels/ - -Another (no wheels): https://jamie.curle.io/blog/my-first-experience-adding-package-pypi/ - -New version: change version and then: - -rm dist/pydevd* - -C:\tools\Miniconda32\Scripts\activate py27_32 -python setup.py sdist bdist_wheel -deactivate -dir dist - -C:\tools\Miniconda32\Scripts\activate py34_32 -python setup.py sdist bdist_wheel -deactivate -dir dist - -C:\tools\Miniconda32\Scripts\activate py35_32 -python setup.py sdist bdist_wheel -deactivate -dir dist - -C:\tools\Miniconda32\Scripts\activate py36_32 -python setup.py sdist bdist_wheel -deactivate -dir dist - -C:\tools\Miniconda\Scripts\activate py27_64 -python setup.py sdist bdist_wheel -deactivate -dir dist - -C:\tools\Miniconda\Scripts\activate py34_64 -python setup.py sdist bdist_wheel -deactivate -dir dist - -C:\tools\Miniconda\Scripts\activate py35_64 -python setup.py sdist bdist_wheel -deactivate -dir dist - -C:\tools\Miniconda\Scripts\activate py36_64 -python setup.py sdist bdist_wheel -deactivate -dir dist - -twine upload dist/pydevd* - -git tag pydev_debugger_1_1_1 -a -m "PyDev.Debugger 1.1.1" -git push --tags -''' - - -from setuptools import setup -from setuptools.dist import Distribution -from distutils.extension import Extension -import os - -class BinaryDistribution(Distribution): - def is_pure(self): - return False - -data_files = [] - -def accept_file(f): - f = f.lower() - for ext in '.py .dll .so .dylib .txt .cpp .h .bat .c .sh .md .txt'.split(): - if f.endswith(ext): - return True - - return f in ['readme', 'makefile'] - -data_files.append(('pydevd_attach_to_process', [os.path.join('pydevd_attach_to_process', f) for f in os.listdir('pydevd_attach_to_process') if accept_file(f)])) -for root, dirs, files in os.walk("pydevd_attach_to_process"): - for d in dirs: - data_files.append((os.path.join(root, d), [os.path.join(root, d, f) for f in os.listdir(os.path.join(root, d)) if accept_file(f)])) - -import pydevd -version = pydevd.__version__ - -args = dict( - name='pydevd', - version=version, - description = 'PyDev.Debugger (used in PyDev and PyCharm)', - author='Fabio Zadrozny and others', - url='https://github.com/fabioz/PyDev.Debugger/', - license='EPL (Eclipse Public License)', - packages=[ - '_pydev_bundle', - '_pydev_imps', - '_pydev_runfiles', - '_pydevd_bundle', - '_pydevd_frame_eval', - 'pydev_ipython', - - # 'pydev_sitecustomize', -- Not actually a package (not added) - - # 'pydevd_attach_to_process', -- Not actually a package (included in MANIFEST.in) - - 'pydevd_concurrency_analyser', - 'pydevd_plugins', - 'pydevd_plugins.extensions', - ], - py_modules=[ - # 'interpreterInfo', -- Not needed for debugger - # 'pycompletionserver', -- Not needed for debugger - 'pydev_app_engine_debug_startup', - # 'pydev_coverage', -- Not needed for debugger - # 'pydev_pysrc', -- Not needed for debugger - 'pydevconsole', - 'pydevd_file_utils', - 'pydevd', - 'pydevd_tracing', - # 'runfiles', -- Not needed for debugger - # 'setup_cython', -- Should not be included as a module - # 'setup', -- Should not be included as a module - ], - classifiers=[ - 'Development Status :: 6 - Mature', - 'Environment :: Console', - 'Intended Audience :: Developers', - - # It seems that the license is not recognized by Pypi, so, not categorizing it for now. - # https://bitbucket.org/pypa/pypi/issues/369/the-eclipse-public-license-superseeded - # 'License :: OSI Approved :: Eclipse Public License', - - 'Operating System :: MacOS :: MacOS X', - 'Operating System :: Microsoft :: Windows', - 'Operating System :: POSIX', - 'Programming Language :: Python', - 'Topic :: Software Development :: Debuggers', - ], - entry_points={ - 'console_scripts':[ - 'pydevd = pydevd:main', - ], - }, - data_files=data_files, - keywords=['pydev', 'pydevd', 'pydev.debugger'], - include_package_data=True, - zip_safe=False, -) - - - -import sys -try: - args_with_binaries = args.copy() - args_with_binaries.update(dict( - distclass=BinaryDistribution, - ext_modules=[ - # In this setup, don't even try to compile with cython, just go with the .c file which should've - # been properly generated from a tested version. - Extension('_pydevd_bundle.pydevd_cython', ["_pydevd_bundle/pydevd_cython.c",]) - ] - )) - setup(**args_with_binaries) -except: - # Compile failed: just setup without compiling cython deps. - setup(**args) - sys.stdout.write('Plain-python version of pydevd installed (cython speedups not available).\n') diff -Nru pycharm-2018.3.5/helpers/pydev/stubs/_get_tips.py pycharm-2019.1/helpers/pydev/stubs/_get_tips.py --- pycharm-2018.3.5/helpers/pydev/stubs/_get_tips.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/stubs/_get_tips.py 2019-03-19 14:23:58.000000000 +0000 @@ -277,4 +277,4 @@ for line in doc.splitlines(): lines.append(' ' + line) doc = '\n'.join(lines) - print temp % dict(method_name=entry[0], args=entry[2] or '(self)', doc=doc) + print(temp % dict(method_name=entry[0], args=entry[2] or '(self)', doc=doc)) diff -Nru pycharm-2018.3.5/helpers/pydev/test_pydevd_reload/test_pydevd_reload.py pycharm-2019.1/helpers/pydev/test_pydevd_reload/test_pydevd_reload.py --- pycharm-2018.3.5/helpers/pydev/test_pydevd_reload/test_pydevd_reload.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/test_pydevd_reload/test_pydevd_reload.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,512 +0,0 @@ -import os # @NoMove -import sys # @NoMove -import pytest - -from _pydevd_bundle import pydevd_reload -import tempfile -import unittest - - -SAMPLE_CODE = """ -class C: - def foo(self): - return 0 - - @classmethod - def bar(cls): - return (0, 0) - - @staticmethod - def stomp(): - return (0, 0, 0) - - def unchanged(self): - return 'unchanged' -""" - -from _pydevd_bundle.pydevd_constants import IS_JYTHON, IS_IRONPYTHON - -@pytest.mark.skipif(IS_JYTHON or IS_IRONPYTHON, reason='CPython related test') -class Test(unittest.TestCase): - - - def setUp(self): - unittest.TestCase.setUp(self) - self.tempdir = None - self.save_path = None - self.tempdir = tempfile.mkdtemp() - self.save_path = list(sys.path) - sys.path.append(self.tempdir) - try: - del sys.modules['x'] - except: - pass - - - def tearDown(self): - unittest.TestCase.tearDown(self) - sys.path = self.save_path - try: - del sys.modules['x'] - except: - pass - - def make_mod(self, name="x", repl=None, subst=None, sample=SAMPLE_CODE): - fn = os.path.join(self.tempdir, name + ".py") - f = open(fn, "w") - if repl is not None and subst is not None: - sample = sample.replace(repl, subst) - try: - f.write(sample) - finally: - f.close() - - - def test_pydevd_reload(self): - - self.make_mod() - import x # @UnresolvedImport - - C = x.C - COut = C - Cfoo = C.foo - Cbar = C.bar - Cstomp = C.stomp - - def check2(expected): - C = x.C - Cfoo = C.foo - Cbar = C.bar - Cstomp = C.stomp - b = C() - bfoo = b.foo - self.assertEqual(expected, b.foo()) - self.assertEqual(expected, bfoo()) - self.assertEqual(expected, Cfoo(b)) - - def check(expected): - b = COut() - bfoo = b.foo - self.assertEqual(expected, b.foo()) - self.assertEqual(expected, bfoo()) - self.assertEqual(expected, Cfoo(b)) - self.assertEqual((expected, expected), Cbar()) - self.assertEqual((expected, expected, expected), Cstomp()) - check2(expected) - - check(0) - - # modify mod and reload - count = 0 - while count < 1: - count += 1 - self.make_mod(repl="0", subst=str(count)) - pydevd_reload.xreload(x) - check(count) - - - def test_pydevd_reload2(self): - - self.make_mod() - import x # @UnresolvedImport - - c = x.C() - cfoo = c.foo - self.assertEqual(0, c.foo()) - self.assertEqual(0, cfoo()) - - self.make_mod(repl="0", subst='1') - pydevd_reload.xreload(x) - self.assertEqual(1, c.foo()) - self.assertEqual(1, cfoo()) - - def test_pydevd_reload3(self): - class F: - def m1(self): - return 1 - class G: - def m1(self): - return 2 - - self.assertEqual(F().m1(), 1) - pydevd_reload.Reload(None)._update(None, None, F, G) - self.assertEqual(F().m1(), 2) - - - def test_pydevd_reload4(self): - class F: - pass - F.m1 = lambda a:None - class G: - pass - G.m1 = lambda a:10 - - self.assertEqual(F().m1(), None) - pydevd_reload.Reload(None)._update(None, None, F, G) - self.assertEqual(F().m1(), 10) - - - - def test_if_code_obj_equals(self): - class F: - def m1(self): - return 1 - class G: - def m1(self): - return 1 - class H: - def m1(self): - return 2 - - if hasattr(F.m1, 'func_code'): - self.assertTrue(pydevd_reload.code_objects_equal(F.m1.func_code, G.m1.func_code)) - self.assertFalse(pydevd_reload.code_objects_equal(F.m1.func_code, H.m1.func_code)) - else: - self.assertTrue(pydevd_reload.code_objects_equal(F.m1.__code__, G.m1.__code__)) - self.assertFalse(pydevd_reload.code_objects_equal(F.m1.__code__, H.m1.__code__)) - - - - def test_metaclass(self): - - class Meta(type): - def __init__(cls, name, bases, attrs): - super(Meta, cls).__init__(name, bases, attrs) - - class F: - __metaclass__ = Meta - - def m1(self): - return 1 - - - class G: - __metaclass__ = Meta - - def m1(self): - return 2 - - self.assertEqual(F().m1(), 1) - pydevd_reload.Reload(None)._update(None, None, F, G) - self.assertEqual(F().m1(), 2) - - - - def test_change_hierarchy(self): - - class F(object): - - def m1(self): - return 1 - - - class B(object): - def super_call(self): - return 2 - - class G(B): - - def m1(self): - return self.super_call() - - self.assertEqual(F().m1(), 1) - old = pydevd_reload.notify_error - self._called = False - def on_error(*args): - self._called = True - try: - pydevd_reload.notify_error = on_error - pydevd_reload.Reload(None)._update(None, None, F, G) - self.assertTrue(self._called) - finally: - pydevd_reload.notify_error = old - - - def test_change_hierarchy_old_style(self): - - class F: - - def m1(self): - return 1 - - - class B: - def super_call(self): - return 2 - - class G(B): - - def m1(self): - return self.super_call() - - - self.assertEqual(F().m1(), 1) - old = pydevd_reload.notify_error - self._called = False - def on_error(*args): - self._called = True - try: - pydevd_reload.notify_error = on_error - pydevd_reload.Reload(None)._update(None, None, F, G) - self.assertTrue(self._called) - finally: - pydevd_reload.notify_error = old - - - def test_create_class(self): - SAMPLE_CODE1 = """ -class C: - def foo(self): - return 0 -""" - # Creating a new class and using it from old class - SAMPLE_CODE2 = """ -class B: - pass - -class C: - def foo(self): - return B -""" - - self.make_mod(sample=SAMPLE_CODE1) - import x # @UnresolvedImport - foo = x.C().foo - self.assertEqual(foo(), 0) - self.make_mod(sample=SAMPLE_CODE2) - pydevd_reload.xreload(x) - self.assertEqual(foo().__name__, 'B') - - def test_create_class2(self): - SAMPLE_CODE1 = """ -class C(object): - def foo(self): - return 0 -""" - # Creating a new class and using it from old class - SAMPLE_CODE2 = """ -class B(object): - pass - -class C(object): - def foo(self): - return B -""" - - self.make_mod(sample=SAMPLE_CODE1) - import x # @UnresolvedImport - foo = x.C().foo - self.assertEqual(foo(), 0) - self.make_mod(sample=SAMPLE_CODE2) - pydevd_reload.xreload(x) - self.assertEqual(foo().__name__, 'B') - - def test_parent_function(self): - SAMPLE_CODE1 = """ -class B(object): - def foo(self): - return 0 - -class C(B): - def call(self): - return self.foo() -""" - # Creating a new class and using it from old class - SAMPLE_CODE2 = """ -class B(object): - def foo(self): - return 0 - def bar(self): - return 'bar' - -class C(B): - def call(self): - return self.bar() -""" - - self.make_mod(sample=SAMPLE_CODE1) - import x # @UnresolvedImport - call = x.C().call - self.assertEqual(call(), 0) - self.make_mod(sample=SAMPLE_CODE2) - pydevd_reload.xreload(x) - self.assertEqual(call(), 'bar') - - - def test_update_constant(self): - SAMPLE_CODE1 = """ -CONSTANT = 1 - -class B(object): - def foo(self): - return CONSTANT -""" - SAMPLE_CODE2 = """ -CONSTANT = 2 - -class B(object): - def foo(self): - return CONSTANT -""" - - self.make_mod(sample=SAMPLE_CODE1) - import x # @UnresolvedImport - foo = x.B().foo - self.assertEqual(foo(), 1) - self.make_mod(sample=SAMPLE_CODE2) - pydevd_reload.xreload(x) - self.assertEqual(foo(), 1) #Just making it explicit we don't reload constants. - - - def test_update_constant_with_custom_code(self): - SAMPLE_CODE1 = """ -CONSTANT = 1 - -class B(object): - def foo(self): - return CONSTANT -""" - SAMPLE_CODE2 = """ -CONSTANT = 2 - -def __xreload_old_new__(namespace, name, old, new): - if name == 'CONSTANT': - namespace[name] = new - -class B(object): - def foo(self): - return CONSTANT -""" - - self.make_mod(sample=SAMPLE_CODE1) - import x # @UnresolvedImport - foo = x.B().foo - self.assertEqual(foo(), 1) - self.make_mod(sample=SAMPLE_CODE2) - pydevd_reload.xreload(x) - self.assertEqual(foo(), 2) #Actually updated it now! - - - def test_reload_custom_code_after_changes(self): - SAMPLE_CODE1 = """ -CONSTANT = 1 - -class B(object): - def foo(self): - return CONSTANT -""" - SAMPLE_CODE2 = """ -CONSTANT = 1 - -def __xreload_after_reload_update__(namespace): - namespace['CONSTANT'] = 2 - -class B(object): - def foo(self): - return CONSTANT -""" - - self.make_mod(sample=SAMPLE_CODE1) - import x # @UnresolvedImport - foo = x.B().foo - self.assertEqual(foo(), 1) - self.make_mod(sample=SAMPLE_CODE2) - pydevd_reload.xreload(x) - self.assertEqual(foo(), 2) #Actually updated it now! - - - def test_reload_custom_code_after_changes_in_class(self): - SAMPLE_CODE1 = """ - -class B(object): - CONSTANT = 1 - - def foo(self): - return self.CONSTANT -""" - SAMPLE_CODE2 = """ - - -class B(object): - CONSTANT = 1 - - @classmethod - def __xreload_after_reload_update__(cls): - cls.CONSTANT = 2 - - def foo(self): - return self.CONSTANT -""" - - self.make_mod(sample=SAMPLE_CODE1) - import x # @UnresolvedImport - foo = x.B().foo - self.assertEqual(foo(), 1) - self.make_mod(sample=SAMPLE_CODE2) - pydevd_reload.xreload(x) - self.assertEqual(foo(), 2) #Actually updated it now! - - - def test_update_constant_with_custom_code2(self): - SAMPLE_CODE1 = """ - -class B(object): - CONSTANT = 1 - - def foo(self): - return self.CONSTANT -""" - SAMPLE_CODE2 = """ - - -class B(object): - - CONSTANT = 2 - - def __xreload_old_new__(cls, name, old, new): - if name == 'CONSTANT': - cls.CONSTANT = new - __xreload_old_new__ = classmethod(__xreload_old_new__) - - def foo(self): - return self.CONSTANT -""" - - self.make_mod(sample=SAMPLE_CODE1) - import x # @UnresolvedImport - foo = x.B().foo - self.assertEqual(foo(), 1) - self.make_mod(sample=SAMPLE_CODE2) - pydevd_reload.xreload(x) - self.assertEqual(foo(), 2) #Actually updated it now! - - - def test_update_with_slots(self): - SAMPLE_CODE1 = """ -class B(object): - - __slots__ = ['bar'] - -""" - SAMPLE_CODE2 = """ -class B(object): - - __slots__ = ['bar', 'foo'] - - def m1(self): - self.bar = 10 - return 1 - -""" - - self.make_mod(sample=SAMPLE_CODE1) - import x # @UnresolvedImport - B = x.B - self.make_mod(sample=SAMPLE_CODE2) - pydevd_reload.xreload(x) - b = B() - self.assertEqual(1, b.m1()) - self.assertEqual(10, b.bar) - self.assertRaises(Exception, setattr, b, 'foo', 20) #__slots__ can't be updated - - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_check_pydevconsole.py pycharm-2019.1/helpers/pydev/tests_pydevd/test_check_pydevconsole.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_check_pydevconsole.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd/test_check_pydevconsole.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,113 +0,0 @@ -import threading -import unittest -import os -import pytest -import pydevconsole - -from _pydev_bundle.pydev_imports import xmlrpclib, SimpleXMLRPCServer -from _pydev_bundle.pydev_localhost import get_localhost - -try: - raw_input - raw_input_name = 'raw_input' -except NameError: - raw_input_name = 'input' - -try: - from IPython import core # @UnusedImport - has_ipython = True -except: - has_ipython = False - - -#======================================================================================================================= -# Test -#======================================================================================================================= -@pytest.mark.skipif(os.environ.get('TRAVIS') == 'true' or not has_ipython, reason='Too flaky on Travis (and requires IPython).') -class Test(unittest.TestCase): - - def start_client_thread(self, client_port): - class ClientThread(threading.Thread): - def __init__(self, client_port): - threading.Thread.__init__(self) - self.client_port = client_port - - def run(self): - class HandleRequestInput: - def RequestInput(self): - client_thread.requested_input = True - return 'RequestInput: OK' - - def NotifyFinished(self, *args, **kwargs): - client_thread.notified_finished += 1 - return 1 - - handle_request_input = HandleRequestInput() - - from _pydev_bundle import pydev_localhost - self.client_server = client_server = SimpleXMLRPCServer((pydev_localhost.get_localhost(), self.client_port), logRequests=False) - client_server.register_function(handle_request_input.RequestInput) - client_server.register_function(handle_request_input.NotifyFinished) - client_server.serve_forever() - - def shutdown(self): - return - self.client_server.shutdown() - - client_thread = ClientThread(client_port) - client_thread.requested_input = False - client_thread.notified_finished = 0 - client_thread.setDaemon(True) - client_thread.start() - return client_thread - - - def get_free_addresses(self): - from _pydev_bundle.pydev_localhost import get_socket_names - socket_names = get_socket_names(2, close=True) - return [socket_name[1] for socket_name in socket_names] - - def test_server(self): - # Just making sure that the singleton is created in this thread. - from _pydev_bundle.pydev_ipython_console_011 import get_pydev_frontend - get_pydev_frontend(get_localhost(), 0) - - client_port, server_port = self.get_free_addresses() - class ServerThread(threading.Thread): - def __init__(self, client_port, server_port): - threading.Thread.__init__(self) - self.client_port = client_port - self.server_port = server_port - - def run(self): - from _pydev_bundle import pydev_localhost - print('Starting server with:', pydev_localhost.get_localhost(), self.server_port, self.client_port) - pydevconsole.start_server(pydev_localhost.get_localhost(), self.server_port, self.client_port) - server_thread = ServerThread(client_port, server_port) - server_thread.setDaemon(True) - server_thread.start() - - client_thread = self.start_client_thread(client_port) #@UnusedVariable - - try: - import time - time.sleep(.3) #let's give it some time to start the threads - - from _pydev_bundle import pydev_localhost - server = xmlrpclib.Server('http://%s:%s' % (pydev_localhost.get_localhost(), server_port)) - server.execLine("import sys; print('Running with: %s %s' % (sys.executable or sys.platform, sys.version))") - server.execLine('class Foo:') - server.execLine(' pass') - server.execLine('') - server.execLine('foo = Foo()') - server.execLine('a = %s()' % raw_input_name) - initial = time.time() - while not client_thread.requested_input: - if time.time() - initial > 2: - raise AssertionError('Did not get the return asked before the timeout.') - time.sleep(.1) - frame_xml = server.getFrame() - self.assertTrue('RequestInput' in frame_xml, 'Did not fid RequestInput in:\n%s' % (frame_xml,)) - finally: - client_thread.shutdown() - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_get_referrers.py pycharm-2019.1/helpers/pydev/tests_pydevd/test_get_referrers.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_get_referrers.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd/test_get_referrers.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,120 +0,0 @@ -import sys -import threading -import time -import unittest -import pytest -from _pydevd_bundle import pydevd_referrers -from _pydev_bundle.pydev_imports import StringIO - -try: - import gc - gc.get_referrers(unittest) - has_referrers = True -except NotImplementedError: - has_referrers = False - -# Only do get referrers tests if it's actually available. -@pytest.mark.skipif(not has_referrers, reason='gc.get_referrers not implemented') -class Test(unittest.TestCase): - - - def test_get_referrers1(self): - - container = [] - contained = [1, 2] - container.append(0) - container.append(contained) - - # Ok, we have the contained in this frame and inside the given list (which on turn is in this frame too). - # we should skip temporary references inside the get_referrer_info. - result = pydevd_referrers.get_referrer_info(contained) - assert 'list[1]' in result - pydevd_referrers.print_referrers(contained, stream=StringIO()) - - def test_get_referrers2(self): - - class MyClass(object): - def __init__(self): - pass - - contained = [1, 2] - obj = MyClass() - obj.contained = contained - del contained - - # Ok, we have the contained in this frame and inside the given list (which on turn is in this frame too). - # we should skip temporary references inside the get_referrer_info. - result = pydevd_referrers.get_referrer_info(obj.contained) - assert 'found_as="contained"' in result - assert 'MyClass' in result - - - def test_get_referrers3(self): - - class MyClass(object): - def __init__(self): - pass - - contained = [1, 2] - obj = MyClass() - obj.contained = contained - del contained - - # Ok, we have the contained in this frame and inside the given list (which on turn is in this frame too). - # we should skip temporary references inside the get_referrer_info. - result = pydevd_referrers.get_referrer_info(obj.contained) - assert 'found_as="contained"' in result - assert 'MyClass' in result - - - def test_get_referrers4(self): - - class MyClass(object): - def __init__(self): - pass - - obj = MyClass() - obj.me = obj - - # Let's see if we detect the cycle... - result = pydevd_referrers.get_referrer_info(obj) - assert 'found_as="me"' in result #Cyclic ref - - - def test_get_referrers5(self): - container = dict(a=[1]) - - # Let's see if we detect the cycle... - result = pydevd_referrers.get_referrer_info(container['a']) - assert 'test_get_referrers5' not in result #I.e.: NOT in the current method - assert 'found_as="a"' in result - assert 'dict' in result - assert str(id(container)) in result - - - def test_get_referrers6(self): - container = dict(a=[1]) - - def should_appear(obj): - # Let's see if we detect the cycle... - return pydevd_referrers.get_referrer_info(obj) - - result = should_appear(container['a']) - assert 'should_appear' in result - - - def test_get_referrers7(self): - - class MyThread(threading.Thread): - def run(self): - #Note: we do that because if we do - self.frame = sys._getframe() - - t = MyThread() - t.start() - while not hasattr(t, 'frame'): - time.sleep(0.01) - - result = pydevd_referrers.get_referrer_info(t.frame) - assert 'MyThread' in result - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_jyserver.py pycharm-2019.1/helpers/pydev/tests_pydevd/test_jyserver.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_jyserver.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd/test_jyserver.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,140 +0,0 @@ -''' -@author Fabio Zadrozny -''' -import sys -import unittest -import socket -import urllib -import pytest -import pycompletionserver - - -IS_JYTHON = sys.platform.find('java') != -1 -DEBUG = 0 - -def dbg(s): - if DEBUG: - sys.stdout.write('TEST %s\n' % s) - -@pytest.mark.skipif(not IS_JYTHON, reason='Jython related test') -class TestJython(unittest.TestCase): - - def test_it(self): - dbg('ok') - - - def test_message(self): - t = pycompletionserver.CompletionServer(0) - t.exit_process_on_kill = False - - l = [] - l.append(('Def', 'description' , 'args')) - l.append(('Def1', 'description1', 'args1')) - l.append(('Def2', 'description2', 'args2')) - - msg = t.processor.format_completion_message('test_jyserver.py', l) - - self.assertEqual('@@COMPLETIONS(test_jyserver.py,(Def,description,args),(Def1,description1,args1),(Def2,description2,args2))END@@', msg) - - l = [] - l.append(('Def', 'desc,,r,,i()ption', '')) - l.append(('Def(1', 'descriptio(n1', '')) - l.append(('De,f)2', 'de,s,c,ription2', '')) - msg = t.processor.format_completion_message(None, l) - expected = '@@COMPLETIONS(None,(Def,desc%2C%2Cr%2C%2Ci%28%29ption, ),(Def%281,descriptio%28n1, ),(De%2Cf%292,de%2Cs%2Cc%2Cription2, ))END@@' - - self.assertEqual(expected, msg) - - - def test_completion_sockets_and_messages(self): - dbg('test_completion_sockets_and_messages') - t, socket = self.create_connections() - self.socket = socket - dbg('connections created') - - try: - #now that we have the connections all set up, check the code completion messages. - msg = urllib.quote_plus('math') - - toWrite = '@@IMPORTS:%sEND@@' % msg - dbg('writing' + str(toWrite)) - socket.send(toWrite) #math completions - completions = self.read_msg() - dbg(urllib.unquote_plus(completions)) - - start = '@@COMPLETIONS(' - self.assertTrue(completions.startswith(start), '%s DOESNT START WITH %s' % (completions, start)) - self.assertTrue(completions.find('@@COMPLETIONS') != -1) - self.assertTrue(completions.find('END@@') != -1) - - - msg = urllib.quote_plus('__builtin__.str') - toWrite = '@@IMPORTS:%sEND@@' % msg - dbg('writing' + str(toWrite)) - socket.send(toWrite) #math completions - completions = self.read_msg() - dbg(urllib.unquote_plus(completions)) - - start = '@@COMPLETIONS(' - self.assertTrue(completions.startswith(start), '%s DOESNT START WITH %s' % (completions, start)) - self.assertTrue(completions.find('@@COMPLETIONS') != -1) - self.assertTrue(completions.find('END@@') != -1) - - - - finally: - try: - self.send_kill_msg(socket) - - - while not t.ended: - pass #wait until it receives the message and quits. - - - socket.close() - except: - pass - - def get_free_port(self): - from _pydev_bundle.pydev_localhost import get_socket_name - return get_socket_name(close=True)[1] - - def create_connections(self): - ''' - Creates the connections needed for testing. - ''' - p1 = self.get_free_port() - from thread import start_new_thread - t = pycompletionserver.CompletionServer(p1) - t.exit_process_on_kill = False - - start_new_thread(t.run, ()) - - server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - server.bind((pycompletionserver.HOST, p1)) - server.listen(1) - - sock, _addr = server.accept() - - return t, sock - - def read_msg(self): - msg = '@@PROCESSING_END@@' - while msg.startswith('@@PROCESSING'): - msg = self.socket.recv(1024) - if msg.startswith('@@PROCESSING:'): - dbg('Status msg:' + str(msg)) - - while msg.find('END@@') == -1: - msg += self.socket.recv(1024) - - return msg - - def send_kill_msg(self, socket): - socket.send(pycompletionserver.MSG_KILL_SERVER) - - - - -# Run for jython in command line: -# c:\bin\jython2.7.0\bin\jython.exe -m py.test tests\test_jyserver.py diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_jysimpleTipper.py pycharm-2019.1/helpers/pydev/tests_pydevd/test_jysimpleTipper.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_jysimpleTipper.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd/test_jysimpleTipper.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,236 +0,0 @@ -import unittest -import os -import sys -import pytest - -# Note: ant.jar and junit.jar must be in the PYTHONPATH (see jython_test_deps) - -IS_JYTHON = False -if sys.platform.find('java') != -1: - IS_JYTHON = True - from _pydev_bundle._pydev_jy_imports_tipper import ismethod - from _pydev_bundle._pydev_jy_imports_tipper import isclass - from _pydev_bundle._pydev_jy_imports_tipper import dir_obj - from _pydev_bundle import _pydev_jy_imports_tipper - from java.lang.reflect import Method #@UnresolvedImport - from java.lang import System #@UnresolvedImport - from java.lang import String #@UnresolvedImport - from java.lang.System import arraycopy #@UnresolvedImport - from java.lang.System import out #@UnresolvedImport - import java.lang.String #@UnresolvedImport - import org.python.core.PyDictionary #@UnresolvedImport - - -__DBG = 0 -def dbg(s): - if __DBG: - sys.stdout.write('%s\n' % (s,)) - - - -@pytest.mark.skipif(not IS_JYTHON, reason='Jython related test') -class TestMod(unittest.TestCase): - - def assert_args(self, tok, args, tips): - for a in tips: - if tok == a[0]: - self.assertEqual(args, a[2]) - return - raise AssertionError('%s not in %s', tok, tips) - - def assert_in(self, tok, tips): - self.assertEqual(4, len(tips[0])) - for a in tips: - if tok == a[0]: - return a - s = '' - for a in tips: - s += str(a) - s += '\n' - raise AssertionError('%s not in %s' % (tok, s)) - - def test_imports1a(self): - f, tip = _pydev_jy_imports_tipper.generate_tip('java.util.HashMap') - assert f.endswith('rt.jar') - - def test_imports1c(self): - f, tip = _pydev_jy_imports_tipper.generate_tip('java.lang.Class') - assert f.endswith('rt.jar') - - def test_imports1b(self): - try: - f, tip = _pydev_jy_imports_tipper.generate_tip('__builtin__.m') - self.fail('err') - except: - pass - - def test_imports1(self): - f, tip = _pydev_jy_imports_tipper.generate_tip('junit.framework.TestCase') - assert f.endswith('junit.jar') - ret = self.assert_in('assertEqual', tip) -# self.assertEqual('', ret[2]) - - def test_imports2(self): - f, tip = _pydev_jy_imports_tipper.generate_tip('junit.framework') - assert f.endswith('junit.jar') - ret = self.assert_in('TestCase', tip) - self.assertEqual('', ret[2]) - - def test_imports2a(self): - f, tip = _pydev_jy_imports_tipper.generate_tip('org.apache.tools.ant') - assert f.endswith('ant.jar') - ret = self.assert_in('Task', tip) - self.assertEqual('', ret[2]) - - def test_imports3(self): - f, tip = _pydev_jy_imports_tipper.generate_tip('os') - assert f.endswith('os.py') - ret = self.assert_in('path', tip) - self.assertEqual('', ret[2]) - - def test_tip_on_string(self): - f, tip = _pydev_jy_imports_tipper.generate_tip('string') - self.assert_in('join', tip) - self.assert_in('uppercase', tip) - - def test_imports(self): - tip = _pydev_jy_imports_tipper.generate_tip('__builtin__')[1] - self.assert_in('tuple' , tip) - self.assert_in('RuntimeError' , tip) - self.assert_in('RuntimeWarning' , tip) - - def test_imports5(self): - f, tip = _pydev_jy_imports_tipper.generate_tip('java.lang') - assert f.endswith('rt.jar') - tup = self.assert_in('String' , tip) - self.assertEqual(str(_pydev_jy_imports_tipper.TYPE_CLASS), tup[3]) - - tip = _pydev_jy_imports_tipper.generate_tip('java')[1] - tup = self.assert_in('lang' , tip) - self.assertEqual(str(_pydev_jy_imports_tipper.TYPE_IMPORT), tup[3]) - - tip = _pydev_jy_imports_tipper.generate_tip('java.lang.String')[1] - tup = self.assert_in('indexOf' , tip) - self.assertEqual(str(_pydev_jy_imports_tipper.TYPE_FUNCTION), tup[3]) - - tip = _pydev_jy_imports_tipper.generate_tip('java.lang.String')[1] - tup = self.assert_in('charAt' , tip) - self.assertEqual(str(_pydev_jy_imports_tipper.TYPE_FUNCTION), tup[3]) - self.assertEqual('(int)', tup[2]) - - tup = self.assert_in('format' , tip) - self.assertEqual(str(_pydev_jy_imports_tipper.TYPE_FUNCTION), tup[3]) - self.assertEqual('(string, objectArray)', tup[2]) - self.assertTrue(tup[1].find('[Ljava.lang.Object;') == -1) - - tup = self.assert_in('getBytes', tip) - self.assertEqual(str(_pydev_jy_imports_tipper.TYPE_FUNCTION), tup[3]) - assert '[B' not in tup[1] - assert 'byte[]' in tup[1] - - f, tip = _pydev_jy_imports_tipper.generate_tip('__builtin__.str') - assert f.endswith('jython.jar') - self.assert_in('find' , tip) - - f, tip = _pydev_jy_imports_tipper.generate_tip('__builtin__.dict') - assert f.endswith('jython.jar') - self.assert_in('get' , tip) - - -@pytest.mark.skipif(not IS_JYTHON, reason='Jython related test') -class TestSearch(unittest.TestCase): - - def test_search_on_jython(self): - assert _pydev_jy_imports_tipper.search_definition('os')[0][0].split(os.sep)[-1] in ('javaos.py', 'os.py') - self.assertEqual(0, _pydev_jy_imports_tipper.search_definition('os')[0][1]) - - assert _pydev_jy_imports_tipper.search_definition('os.makedirs')[0][0].split(os.sep)[-1] in ('javaos.py', 'os.py') - self.assertNotEqual(0, _pydev_jy_imports_tipper.search_definition('os.makedirs')[0][1]) - - #print _pydev_jy_imports_tipper.search_definition('os.makedirs') - -@pytest.mark.skipif(not IS_JYTHON, reason='Jython related test') -class TestCompl(unittest.TestCase): - - def test_getting_info_on_jython(self): - - dbg('\n\n--------------------------- java') - assert not ismethod(java)[0] - assert not isclass(java) - assert _pydev_jy_imports_tipper.ismodule(java) - - dbg('\n\n--------------------------- java.lang') - assert not ismethod(java.lang)[0] - assert not isclass(java.lang) - assert _pydev_jy_imports_tipper.ismodule(java.lang) - - dbg('\n\n--------------------------- Method') - assert not ismethod(Method)[0] - assert isclass(Method) - - dbg('\n\n--------------------------- System') - assert not ismethod(System)[0] - assert isclass(System) - - dbg('\n\n--------------------------- String') - assert not ismethod(System)[0] - assert isclass(String) - assert len(dir_obj(String)) > 10 - - dbg('\n\n--------------------------- arraycopy') - isMet = ismethod(arraycopy) - assert isMet[0] - assert isMet[1][0].basic_as_str() == "function:arraycopy args=['java.lang.Object', 'int', 'java.lang.Object', 'int', 'int'], varargs=None, kwargs=None, docs:None" - assert not isclass(arraycopy) - - dbg('\n\n--------------------------- out') - isMet = ismethod(out) - assert not isMet[0] - assert not isclass(out) - - dbg('\n\n--------------------------- out.println') - isMet = ismethod(out.println) #@UndefinedVariable - assert isMet[0] - assert len(isMet[1]) == 10 - self.assertEqual(isMet[1][0].basic_as_str(), "function:println args=[], varargs=None, kwargs=None, docs:None") - assert isMet[1][1].basic_as_str() == "function:println args=['long'], varargs=None, kwargs=None, docs:None" - assert not isclass(out.println) #@UndefinedVariable - - dbg('\n\n--------------------------- str') - isMet = ismethod(str) - #the code below should work, but is failing on jython 22a1 - #assert isMet[0] - #assert isMet[1][0].basic_as_str() == "function:str args=['org.python.core.PyObject'], varargs=None, kwargs=None, docs:None" - assert not isclass(str) - - - def met1(): - a = 3 - return a - - dbg('\n\n--------------------------- met1') - isMet = ismethod(met1) - assert isMet[0] - assert isMet[1][0].basic_as_str() == "function:met1 args=[], varargs=None, kwargs=None, docs:None" - assert not isclass(met1) - - def met2(arg1, arg2, *vararg, **kwarg): - '''docmet2''' - - a = 1 - return a - - dbg('\n\n--------------------------- met2') - isMet = ismethod(met2) - assert isMet[0] - assert isMet[1][0].basic_as_str() == "function:met2 args=['arg1', 'arg2'], varargs=vararg, kwargs=kwarg, docs:docmet2" - assert not isclass(met2) - - -# Run for jython in command line: - -# On Windows: -# c:/bin/jython2.7.0/bin/jython.exe -Dpython.path=jython_test_deps/ant.jar;jython_test_deps/junit.jar -m py.test tests/test_jysimpleTipper.py - -# On Linux (different path separator for jars) -# jython -Dpython.path=jython_test_deps/ant.jar:jython_test_deps/junit.jar -m py.test tests/test_jysimpleTipper.py diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_pydevconsole.py pycharm-2019.1/helpers/pydev/tests_pydevd/test_pydevconsole.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_pydevconsole.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd/test_pydevconsole.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,263 +0,0 @@ -import sys -import threading -import unittest - -import pydevconsole -from _pydev_comm.rpc import make_rpc_client, start_rpc_server_and_make_client, start_rpc_server -from _pydevd_bundle import pydevd_io -from pydev_console.protocol import PythonConsoleFrontendService, PythonConsoleBackendService -from pydevconsole import enable_thrift_logging, create_server_handler_factory - -try: - raw_input - raw_input_name = 'raw_input' -except NameError: - raw_input_name = 'input' - -#======================================================================================================================= -# Test -#======================================================================================================================= -class Test(unittest.TestCase): - - def test_console_hello(self): - self.original_stdout = sys.stdout - sys.stdout = pydevd_io.IOBuf() - try: - sys.stdout.encoding = sys.stdin.encoding - except AttributeError: - # In Python 3 encoding is not writable (whereas in Python 2 it doesn't exist). - pass - - try: - rpc_client = self.start_client_thread() #@UnusedVariable - import time - time.sleep(.3) #let's give it some time to start the threads - - from _pydev_bundle import pydev_localhost - interpreter = pydevconsole.InterpreterInterface(threading.currentThread(), rpc_client=rpc_client) - - (result,) = interpreter.hello("Hello pydevconsole") - self.assertEqual(result, "Hello eclipse") - finally: - sys.stdout = self.original_stdout - - - def test_console_requests(self): - self.original_stdout = sys.stdout - sys.stdout = pydevd_io.IOBuf() - - try: - rpc_client = self.start_client_thread() #@UnusedVariable - import time - time.sleep(.3) #let's give it some time to start the threads - - from _pydev_bundle import pydev_localhost - from _pydev_bundle.pydev_console_types import CodeFragment - - interpreter = pydevconsole.InterpreterInterface(threading.currentThread(), rpc_client=rpc_client) - sys.stdout = pydevd_io.IOBuf() - interpreter.add_exec(CodeFragment('class Foo:\n CONSTANT=1\n')) - interpreter.add_exec(CodeFragment('foo=Foo()')) - interpreter.add_exec(CodeFragment('foo.__doc__=None')) - interpreter.add_exec(CodeFragment('val = %s()' % (raw_input_name,))) - interpreter.add_exec(CodeFragment('50')) - interpreter.add_exec(CodeFragment('print (val)')) - found = sys.stdout.getvalue().split() - try: - self.assertEqual(['50', 'input_request'], found) - except: - try: - self.assertEqual(['input_request'], found) #IPython - except: - self.assertEqual([u'50', u'input_request'], found[1:]) # IPython 5.1 - self.assertTrue(found[0].startswith(u'Out')) - - comps = interpreter.do_get_completions('foo.', 'foo.') - self.assertTrue( - ('CONSTANT', '', '', '3') in comps or ('CONSTANT', '', '', '4') in comps, \ - 'Found: %s' % comps - ) - - comps = interpreter.do_get_completions('"".', '"".') - self.assertTrue( - ('__add__', 'x.__add__(y) <==> x+y', '', '3') in comps or - ('__add__', '', '', '4') in comps or - ('__add__', 'x.__add__(y) <==> x+y\r\nx.__add__(y) <==> x+y', '()', '2') in comps or - ('__add__', 'x.\n__add__(y) <==> x+yx.\n__add__(y) <==> x+y', '()', '2'), - 'Did not find __add__ in : %s' % (comps,) - ) - - - completions = interpreter.do_get_completions('', '') - for c in completions: - if c[0] == 'AssertionError': - break - else: - self.fail('Could not find AssertionError') - - completions = interpreter.do_get_completions('Assert', 'Assert') - for c in completions: - if c[0] == 'RuntimeError': - self.fail('Did not expect to find RuntimeError there') - - self.assertTrue(('__doc__', None, '', '3') not in interpreter.do_get_completions('foo.CO', 'foo.')) - - comps = interpreter.do_get_completions('va', 'va') - self.assertTrue(('val', '', '', '3') in comps or ('vars', '', '', '4') in comps) - - interpreter.add_exec(CodeFragment('s = "mystring"')) - - desc = interpreter.getDescription('val') - self.assertTrue(desc.find('str(object) -> string') >= 0 or - desc == "'input_request'" or - desc.find('str(string[, encoding[, errors]]) -> str') >= 0 or - desc.find('str(Char* value)') >= 0 or - desc.find('str(object=\'\') -> string') >= 0 or - desc.find('str(value: Char*)') >= 0 or - desc.find('str(object=\'\') -> str') >= 0 or - desc.find('unicode(object=\'\') -> unicode object') >= 0 or - desc.find('The most base type') >= 0 # Jython 2.7 is providing this :P - , - 'Could not find what was needed in %s' % desc) - - desc = interpreter.getDescription('val.join') - self.assertTrue(desc.find('S.join(sequence) -> string') >= 0 or - desc.find('S.join(sequence) -> str') >= 0 or - desc.find('S.join(iterable) -> string') >= 0 or - desc == "" or - desc == "" or - desc.find('str join(str self, list sequence)') >= 0 or - desc.find('S.join(iterable) -> str') >= 0 or - desc.find('S.join(iterable) -> unicode') >= 0 or - desc.find('join(self: str, sequence: list) -> str') >= 0, - "Could not recognize: %s" % (desc,)) - finally: - sys.stdout = self.original_stdout - - - def create_frontend_handler(self): - class HandleRequestInput: - def __init__(self): - self.requested_input = False - self.notified_finished = 0 - self.rpc_client = None - - def requestInput(self, path): - self.requested_input = True - return 'input_request' - - def notifyFinished(self, needs_more_input): - self.notified_finished += 1 - - def notifyAboutMagic(self, commands, is_auto_magic): - pass - - return HandleRequestInput() - - def start_client_thread(self): - from _pydev_bundle import pydev_localhost - - enable_thrift_logging() - - # here we start the test server - server_socket = start_rpc_server_and_make_client(pydev_localhost.get_localhost(), 0, - PythonConsoleFrontendService, - PythonConsoleBackendService, - create_server_handler_factory(self.create_frontend_handler())) - - host, port = server_socket.getsockname() - - import time - time.sleep(1) - - rpc_client, _ = make_rpc_client(PythonConsoleFrontendService, host, port) - - return rpc_client - - - def start_debugger_server_thread(self, debugger_port, socket_code): - class DebuggerServerThread(threading.Thread): - def __init__(self, debugger_port, socket_code): - threading.Thread.__init__(self) - self.debugger_port = debugger_port - self.socket_code = socket_code - def run(self): - import socket - s = socket.socket() - s.bind(('', debugger_port)) - s.listen(1) - socket, unused_addr = s.accept() - socket_code(socket) - - debugger_thread = DebuggerServerThread(debugger_port, socket_code) - debugger_thread.setDaemon(True) - debugger_thread.start() - return debugger_thread - - - def get_free_addresses(self): - from _pydev_bundle.pydev_localhost import get_socket_names - socket_names = get_socket_names(2, True) - port0 = socket_names[0][1] - port1 = socket_names[1][1] - - assert port0 != port1 - assert port0 > 0 - assert port1 > 0 - - return port0, port1 - - - def test_server(self): - self.original_stdout = sys.stdout - sys.stdout = pydevd_io.IOBuf() - try: - from _pydev_bundle.pydev_localhost import get_socket_name - host, port = get_socket_name(close=True) - - class ServerThread(threading.Thread): - def __init__(self, backend_port): - threading.Thread.__init__(self) - self.backend_port = backend_port - - def run(self): - from _pydev_bundle import pydev_localhost - pydevconsole.start_server(self.backend_port) - - server_thread = ServerThread(port) - server_thread.setDaemon(True) - server_thread.start() - - import time - time.sleep(1) #let's give it some time to start the threads - - rpc_client, server_transport = make_rpc_client(PythonConsoleBackendService, host, port) - - server_service = PythonConsoleFrontendService - - server_handler = self.create_frontend_handler() - - start_rpc_server(server_transport, server_service, server_handler) - - rpc_client.execLine('class Foo:') - rpc_client.execLine(' pass') - rpc_client.execLine('') - rpc_client.execLine('foo = Foo()') - rpc_client.execLine('a = %s()' % (raw_input_name,)) - rpc_client.execLine('print (a)') - initial = time.time() - while not server_handler.requested_input: - if time.time() - initial > 2: - raise AssertionError('Did not get the return asked before the timeout.') - time.sleep(.1) - - found = sys.stdout.getvalue() - while ['input_request'] != found.split(): - found += sys.stdout.getvalue() - if time.time() - initial > 2: - break - time.sleep(.1) - self.assertIn('input_request', found.split()) - finally: - sys.stdout = self.original_stdout - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_pydev_ipython_011.py pycharm-2019.1/helpers/pydev/tests_pydevd/test_pydev_ipython_011.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_pydev_ipython_011.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd/test_pydev_ipython_011.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,303 +0,0 @@ -import os -import sys -import time -import unittest - -import pytest - -from _pydev_bundle.pydev_stdin import StdIn -from _pydev_bundle.pydev_localhost import get_localhost -from _pydev_comm.rpc import make_rpc_client -from _pydevd_bundle import pydevd_io -from pydev_console.protocol import PythonConsoleFrontendService, PythonConsoleBackendService -from pydevconsole import enable_thrift_logging, create_server_handler_factory - -try: - xrange -except: - xrange = range - -def eq_(a, b): - if a != b: - raise AssertionError('%s != %s' % (a, b)) - -try: - from IPython import core - has_ipython = True -except: - has_ipython = False - -@pytest.mark.skipif(not has_ipython, reason='IPython not available') -class TestBase(unittest.TestCase): - - - def setUp(self): - from _pydev_bundle.pydev_ipython_console_011 import get_pydev_frontend - - # PyDevFrontEnd depends on singleton in IPython, so you - # can't make multiple versions. So we reuse self.front_end for - # all the tests - self.front_end = get_pydev_frontend(None) - - from pydev_ipython.inputhook import set_return_control_callback - set_return_control_callback(lambda:True) - self.front_end.clear_buffer() - - def tearDown(self): - pass - - def add_exec(self, code, expected_more=False): - more = self.front_end.add_exec(code) - eq_(expected_more, more) - - def redirect_stdout(self): - from IPython.utils import io - - self.original_stdout = sys.stdout - sys.stdout = io.stdout = pydevd_io.IOBuf() - - def restore_stdout(self): - from IPython.utils import io - io.stdout = sys.stdout = self.original_stdout - - -@pytest.mark.skipif(not has_ipython, reason='IPython not available') -class TestPyDevFrontEnd(TestBase): - - def testAddExec_1(self): - self.add_exec('if True:', True) - - - def testAddExec_2(self): - #Change: 'more' must now be controlled in the client side after the initial 'True' returned. - self.add_exec('if True:\n testAddExec_a = 10\n', False) - assert 'testAddExec_a' in self.front_end.get_namespace() - - - def testAddExec_3(self): - assert 'testAddExec_x' not in self.front_end.get_namespace() - self.add_exec('if True:\n testAddExec_x = 10\n\n') - assert 'testAddExec_x' in self.front_end.get_namespace() - eq_(self.front_end.get_namespace()['testAddExec_x'], 10) - - - def test_get_namespace(self): - assert 'testGetNamespace_a' not in self.front_end.get_namespace() - self.add_exec('testGetNamespace_a = 10') - assert 'testGetNamespace_a' in self.front_end.get_namespace() - eq_(self.front_end.get_namespace()['testGetNamespace_a'], 10) - - - def test_complete(self): - unused_text, matches = self.front_end.complete('%') - assert len(matches) > 1, 'at least one magic should appear in completions' - - - def test_complete_does_not_do_python_matches(self): - # Test that IPython's completions do not do the things that - # PyDev's completions will handle - self.add_exec('testComplete_a = 5') - self.add_exec('testComplete_b = 10') - self.add_exec('testComplete_c = 15') - unused_text, matches = self.front_end.complete('testComplete_') - assert len(matches) == 0 - - - def testGetCompletions_1(self): - # Test the merged completions include the standard completions - self.add_exec('testComplete_a = 5') - self.add_exec('testComplete_b = 10') - self.add_exec('testComplete_c = 15') - res = self.front_end.getCompletions('testComplete_', 'testComplete_') - matches = [f[0] for f in res] - assert len(matches) == 3 - eq_(set(['testComplete_a', 'testComplete_b', 'testComplete_c']), set(matches)) - - - def testGetCompletions_2(self): - # Test that we get IPython completions in results - # we do this by checking kw completion which PyDev does - # not do by default - self.add_exec('def ccc(ABC=123): pass') - res = self.front_end.getCompletions('ccc(', '') - matches = [f[0] for f in res] - assert 'ABC=' in matches - - - def testGetCompletions_3(self): - # Test that magics return IPYTHON magic as type - res = self.front_end.getCompletions('%cd', '%cd') - assert len(res) == 1 - eq_(res[0][3], '12') # '12' == IToken.TYPE_IPYTHON_MAGIC - assert len(res[0][1]) > 100, 'docstring for %cd should be a reasonably long string' - -@pytest.mark.skipif(not has_ipython, reason='IPython not available') -class TestRunningCode(TestBase): - - def test_print(self): - self.redirect_stdout() - try: - self.add_exec('print("output")') - eq_(sys.stdout.getvalue(), 'output\n') - finally: - self.restore_stdout() - - - def testQuestionMark_1(self): - self.redirect_stdout() - try: - self.add_exec('?') - assert len(sys.stdout.getvalue()) > 1000, 'IPython help should be pretty big' - finally: - self.restore_stdout() - - - def testQuestionMark_2(self): - self.redirect_stdout() - try: - self.add_exec('int?') - assert sys.stdout.getvalue().find('Convert') != -1 - finally: - self.restore_stdout() - - - - def test_gui(self): - try: - import Tkinter - except: - return - else: - from pydev_ipython.inputhook import get_inputhook - assert get_inputhook() is None - self.add_exec('%gui tk') - # we can't test the GUI works here because we aren't connected to XML-RPC so - # nowhere for hook to run - assert get_inputhook() is not None - self.add_exec('%gui none') - assert get_inputhook() is None - - - def test_history(self): - ''' Make sure commands are added to IPython's history ''' - self.redirect_stdout() - try: - self.add_exec('a=1') - self.add_exec('b=2') - _ih = self.front_end.get_namespace()['_ih'] - eq_(_ih[-1], 'b=2') - eq_(_ih[-2], 'a=1') - - self.add_exec('history') - hist = sys.stdout.getvalue().split('\n') - eq_(hist[-1], '') - eq_(hist[-2], 'history') - eq_(hist[-3], 'b=2') - eq_(hist[-4], 'a=1') - finally: - self.restore_stdout() - - - def test_edit(self): - ''' Make sure we can issue an edit command''' - if os.environ.get('TRAVIS') == 'true': - # This test is too flaky on travis. - return - - from _pydev_bundle.pydev_ipython_console_011 import get_pydev_frontend - from _pydev_comm.rpc import start_rpc_server_and_make_client - - called_RequestInput = [False] - called_IPythonEditor = [False] - - class RequestInputHandler: - def __init__(self): - self.rpc_client = None - - def requestInput(self, path): - called_RequestInput[0] = True - return '\n' - - def IPythonEditor(self, name, line): - called_IPythonEditor[0] = (name, line) - return True - - enable_thrift_logging() - - # here we start the test server - server_socket = start_rpc_server_and_make_client(get_localhost(), 0, - PythonConsoleFrontendService, - PythonConsoleBackendService, - create_server_handler_factory(RequestInputHandler())) - - host, port = server_socket.getsockname() - - rpc_client, _ = make_rpc_client(PythonConsoleFrontendService, host, port) - - # PyDevFrontEnd depends on singleton in IPython, so you - # can't make multiple versions. So we reuse self.front_end for - # all the tests - self.front_end = get_pydev_frontend(rpc_client) - - orig_stdin = sys.stdin - sys.stdin = StdIn(self, rpc_client) - try: - filename = 'made_up_file.py' - self.add_exec('%edit ' + filename) - - for i in xrange(10): - if called_IPythonEditor[0] == (os.path.abspath(filename), '0'): - break - time.sleep(.1) - - if not called_IPythonEditor[0]: - # File "/home/travis/miniconda/lib/python3.3/site-packages/IPython/core/interactiveshell.py", line 2883, in run_code - # exec(code_obj, self.user_global_ns, self.user_ns) - # File "", line 1, in - # get_ipython().magic('edit made_up_file.py') - # File "/home/travis/miniconda/lib/python3.3/site-packages/IPython/core/interactiveshell.py", line 2205, in magic - # return self.run_line_magic(magic_name, magic_arg_s) - # File "/home/travis/miniconda/lib/python3.3/site-packages/IPython/core/interactiveshell.py", line 2126, in run_line_magic - # result = fn(*args,**kwargs) - # File "", line 2, in edit - # File "/home/travis/miniconda/lib/python3.3/site-packages/IPython/core/magic.py", line 193, in - # call = lambda f, *a, **k: f(*a, **k) - # File "/home/travis/miniconda/lib/python3.3/site-packages/IPython/core/magics/code.py", line 662, in edit - # self.shell.hooks.editor(filename,lineno) - # File "/home/travis/build/fabioz/PyDev.Debugger/pydev_ipython_console_011.py", line 70, in call_editor - # server.IPythonEditor(filename, str(line)) - # File "/home/travis/miniconda/lib/python3.3/xmlrpc/client.py", line 1090, in __call__ - # return self.__send(self.__name, args) - # File "/home/travis/miniconda/lib/python3.3/xmlrpc/client.py", line 1419, in __request - # verbose=self.__verbose - # File "/home/travis/miniconda/lib/python3.3/xmlrpc/client.py", line 1132, in request - # return self.single_request(host, handler, request_body, verbose) - # File "/home/travis/miniconda/lib/python3.3/xmlrpc/client.py", line 1143, in single_request - # http_conn = self.send_request(host, handler, request_body, verbose) - # File "/home/travis/miniconda/lib/python3.3/xmlrpc/client.py", line 1255, in send_request - # self.send_content(connection, request_body) - # File "/home/travis/miniconda/lib/python3.3/xmlrpc/client.py", line 1285, in send_content - # connection.endheaders(request_body) - # File "/home/travis/miniconda/lib/python3.3/http/client.py", line 1061, in endheaders - # self._send_output(message_body) - # File "/home/travis/miniconda/lib/python3.3/http/client.py", line 906, in _send_output - # self.send(msg) - # File "/home/travis/miniconda/lib/python3.3/http/client.py", line 844, in send - # self.connect() - # File "/home/travis/miniconda/lib/python3.3/http/client.py", line 822, in connect - # self.timeout, self.source_address) - # File "/home/travis/miniconda/lib/python3.3/socket.py", line 435, in create_connection - # raise err - # File "/home/travis/miniconda/lib/python3.3/socket.py", line 426, in create_connection - # sock.connect(sa) - # ConnectionRefusedError: [Errno 111] Connection refused - - # I.e.: just warn that the test failing, don't actually fail. - sys.stderr.write('Test failed: this test is brittle in travis because sometimes the connection is refused (as above) and we do not have a callback.\n') - return - - eq_(called_IPythonEditor[0], (os.path.abspath(filename), '0')) - assert called_RequestInput[0], "Make sure the 'wait' parameter has been respected" - finally: - sys.stdin = orig_stdin - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_pyserver.py pycharm-2019.1/helpers/pydev/tests_pydevd/test_pyserver.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_pyserver.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd/test_pyserver.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,170 +0,0 @@ -''' -@author Fabio Zadrozny -''' -import sys -import pytest -from _pydev_imps._pydev_saved_modules import thread - -start_new_thread = thread.start_new_thread - - -IS_PYTHON_3_ONWARDS = sys.version_info[0] >= 3 -IS_JYTHON = sys.platform.find('java') != -1 - -try: - import __builtin__ #@UnusedImport - BUILTIN_MOD = '__builtin__' -except ImportError: - BUILTIN_MOD = 'builtins' - - -if not IS_JYTHON: - import pycompletionserver - import socket - if not IS_PYTHON_3_ONWARDS: - from urllib import quote_plus, unquote_plus - def send(s, msg): - s.send(msg) - else: - from urllib.parse import quote_plus, unquote_plus #Python 3.0 - def send(s, msg): - s.send(bytearray(msg, 'utf-8')) - -import unittest - -@pytest.mark.skipif(IS_JYTHON, reason='Not applicable to Jython') -class TestCPython(unittest.TestCase): - - def test_message(self): - t = pycompletionserver.CompletionServer(0) - - l = [] - l.append(('Def', 'description' , 'args')) - l.append(('Def1', 'description1', 'args1')) - l.append(('Def2', 'description2', 'args2')) - - msg = t.processor.format_completion_message(None, l) - - self.assertEqual('@@COMPLETIONS(None,(Def,description,args),(Def1,description1,args1),(Def2,description2,args2))END@@', msg) - l = [] - l.append(('Def', 'desc,,r,,i()ption', '')) - l.append(('Def(1', 'descriptio(n1', '')) - l.append(('De,f)2', 'de,s,c,ription2', '')) - msg = t.processor.format_completion_message(None, l) - self.assertEqual('@@COMPLETIONS(None,(Def,desc%2C%2Cr%2C%2Ci%28%29ption, ),(Def%281,descriptio%28n1, ),(De%2Cf%292,de%2Cs%2Cc%2Cription2, ))END@@', msg) - def create_connections(self, p1=50002): - ''' - Creates the connections needed for testing. - ''' - server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - server.bind((pycompletionserver.HOST, p1)) - server.listen(1) #socket to receive messages. - - t = pycompletionserver.CompletionServer(p1) - t.exit_process_on_kill = False - start_new_thread(t.run, ()) - - s, addr = server.accept() - - return t, s - - - def read_msg(self): - finish = False - msg = '' - while finish == False: - m = self.socket.recv(1024 * 4) - if IS_PYTHON_3_ONWARDS: - m = m.decode('utf-8') - if m.startswith('@@PROCESSING'): - sys.stdout.write('Status msg: %s\n' % (msg,)) - else: - msg += m - - if msg.find('END@@') != -1: - finish = True - - return msg - - def test_completion_sockets_and_messages(self): - t, socket = self.create_connections() - self.socket = socket - - try: - #now that we have the connections all set up, check the code completion messages. - msg = quote_plus('math') - send(socket, '@@IMPORTS:%sEND@@' % msg) #math completions - completions = self.read_msg() - #print_ unquote_plus(completions) - - #math is a builtin and because of that, it starts with None as a file - start = '@@COMPLETIONS(None,(__doc__,' - start_2 = '@@COMPLETIONS(None,(__name__,' - if '/math.so,' in completions or\ - '/math.cpython-33m.so,' in completions or \ - '/math.cpython-34m.so,' in completions or \ - 'math.cpython-35m' in completions or \ - 'math.cpython-36m' in completions: - return - self.assertTrue(completions.startswith(start) or completions.startswith(start_2), '%s DOESNT START WITH %s' % (completions, (start, start_2))) - - self.assertTrue('@@COMPLETIONS' in completions) - self.assertTrue('END@@' in completions) - - - #now, test i - msg = quote_plus('%s.list' % BUILTIN_MOD) - send(socket, "@@IMPORTS:%s\nEND@@" % msg) - found = self.read_msg() - self.assertTrue('sort' in found, 'Could not find sort in: %s' % (found,)) - - #now, test search - msg = quote_plus('inspect.ismodule') - send(socket, '@@SEARCH%sEND@@' % msg) #math completions - found = self.read_msg() - self.assertTrue('inspect.py' in found) - for i in range(33, 100): - if str(i) in found: - break - else: - self.fail('Could not find the ismodule line in %s' % (found,)) - - #now, test search - msg = quote_plus('inspect.CO_NEWLOCALS') - send(socket, '@@SEARCH%sEND@@' % msg) #math completions - found = self.read_msg() - self.assertTrue('inspect.py' in found) - self.assertTrue('CO_NEWLOCALS' in found) - - #now, test search - msg = quote_plus('inspect.BlockFinder.tokeneater') - send(socket, '@@SEARCH%sEND@@' % msg) - found = self.read_msg() - self.assertTrue('inspect.py' in found) -# self.assertTrue('CO_NEWLOCALS' in found) - - #reload modules test -# send(socket, '@@RELOAD_MODULES_END@@') -# ok = self.read_msg() -# self.assertEqual('@@MSG_OK_END@@' , ok) -# this test is not executed because it breaks our current enviroment. - - finally: - try: - sys.stdout.write('succedded...sending kill msg\n') - self.send_kill_msg(socket) - - -# while not hasattr(t, 'ended'): -# pass #wait until it receives the message and quits. - - - socket.close() - self.socket.close() - except: - pass - - def send_kill_msg(self, socket): - socket.send(pycompletionserver.MSG_KILL_SERVER) - - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_signature.py pycharm-2019.1/helpers/pydev/tests_pydevd/test_signature.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_signature.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd/test_signature.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -import unittest - -from _pydevd_bundle.pydevd_signature import * - -class TestSignature(unittest.TestCase): - def test_type_of_value(self): - def cmp(type, value): - self.assertEqual(type, get_type_of_value(value, recursive=True)) - - cmp('int', 1) - cmp('str', 'str') - cmp('NoneType', None) - cmp('test_signature.TestSignature', self) - cmp('List', []) - cmp('List[int]', [1, 2, 3]) - cmp('Dict', {}) - cmp('Dict[str, int]', {'x':1, 'y':2}) - cmp('Tuple', ()) - cmp('Tuple[int, str]', (1234, '4321')) - cmp('List[Tuple[Dict[int, str], str]]', [({1:'1'}, 'abc')]) diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_simpleTipper.py pycharm-2019.1/helpers/pydev/tests_pydevd/test_simpleTipper.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd/test_simpleTipper.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd/test_simpleTipper.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,202 +0,0 @@ -''' -@author Fabio Zadrozny -''' -from _pydev_bundle import _pydev_imports_tipper -import inspect -import pytest -import sys -import unittest - -try: - import __builtin__ #@UnusedImport - BUILTIN_MOD = '__builtin__' -except ImportError: - BUILTIN_MOD = 'builtins' - - -IS_JYTHON = sys.platform.find('java') != -1 - -HAS_WX = False - - -@pytest.mark.skipif(IS_JYTHON, reason='CPython related test') -class TestCPython(unittest.TestCase): - - def p(self, t): - for a in t: - sys.stdout.write('%s\n' % (a,)) - - def test_imports3(self): - tip = _pydev_imports_tipper.generate_tip('os') - ret = self.assert_in('path', tip) - self.assertEqual('', ret[2]) - - def test_imports2(self): - try: - tip = _pydev_imports_tipper.generate_tip('OpenGL.GLUT') - self.assert_in('glutDisplayFunc', tip) - self.assert_in('glutInitDisplayMode', tip) - except ImportError: - pass - - def test_imports4(self): - try: - tip = _pydev_imports_tipper.generate_tip('mx.DateTime.mxDateTime.mxDateTime') - self.assert_in('now', tip) - except ImportError: - pass - - def test_imports5(self): - tip = _pydev_imports_tipper.generate_tip('%s.list' % BUILTIN_MOD) - s = self.assert_in('sort', tip) - self.check_args( - s, - '(cmp=None, key=None, reverse=False)', - '(self, object cmp, object key, bool reverse)', - '(self, cmp: object, key: object, reverse: bool)', - '(key=None, reverse=False)', - ) - - def test_imports2a(self): - tips = _pydev_imports_tipper.generate_tip('%s.RuntimeError' % BUILTIN_MOD) - self.assert_in('__doc__', tips) - - def test_imports2b(self): - try: - file - except: - pass - else: - tips = _pydev_imports_tipper.generate_tip('%s' % BUILTIN_MOD) - t = self.assert_in('file' , tips) - self.assertTrue('->' in t[1].strip() or 'file' in t[1]) - - def test_imports2c(self): - try: - file # file is not available on py 3 - except: - pass - else: - tips = _pydev_imports_tipper.generate_tip('%s.file' % BUILTIN_MOD) - t = self.assert_in('readlines' , tips) - self.assertTrue('->' in t[1] or 'sizehint' in t[1]) - - def test_imports(self): - ''' - You can print_ the results to check... - ''' - if HAS_WX: - tip = _pydev_imports_tipper.generate_tip('wxPython.wx') - self.assert_in('wxApp' , tip) - - tip = _pydev_imports_tipper.generate_tip('wxPython.wx.wxApp') - - try: - tip = _pydev_imports_tipper.generate_tip('qt') - self.assert_in('QWidget' , tip) - self.assert_in('QDialog' , tip) - - tip = _pydev_imports_tipper.generate_tip('qt.QWidget') - self.assert_in('rect' , tip) - self.assert_in('rect' , tip) - self.assert_in('AltButton' , tip) - - tip = _pydev_imports_tipper.generate_tip('qt.QWidget.AltButton') - self.assert_in('__xor__' , tip) - - tip = _pydev_imports_tipper.generate_tip('qt.QWidget.AltButton.__xor__') - self.assert_in('__class__' , tip) - except ImportError: - pass - - tip = _pydev_imports_tipper.generate_tip(BUILTIN_MOD) -# for t in tip[1]: -# print_ t - self.assert_in('object' , tip) - self.assert_in('tuple' , tip) - self.assert_in('list' , tip) - self.assert_in('RuntimeError' , tip) - self.assert_in('RuntimeWarning' , tip) - - # Remove cmp as it's not available on py 3 - #t = self.assert_in('cmp' , tip) - #self.check_args(t, '(x, y)', '(object x, object y)', '(x: object, y: object)') #args - - t = self.assert_in('isinstance' , tip) - self.check_args(t, '(object, class_or_type_or_tuple)', '(object o, type typeinfo)', '(o: object, typeinfo: type)', '(obj, class_or_tuple)') #args - - t = self.assert_in('compile' , tip) - self.check_args(t, '(source, filename, mode)', '()', '(o: object, name: str, val: object)', '(source, filename, mode, flags, dont_inherit, optimize)') #args - - t = self.assert_in('setattr' , tip) - self.check_args(t, '(object, name, value)', '(object o, str name, object val)', '(o: object, name: str, val: object)', '(obj, name, value)') #args - - try: - import compiler - compiler_module = 'compiler' - except ImportError: - try: - import ast - compiler_module = 'ast' - except ImportError: - compiler_module = None - - if compiler_module is not None: #Not available in iron python - tip = _pydev_imports_tipper.generate_tip(compiler_module) - if compiler_module == 'compiler': - self.assert_args('parse', '(buf, mode)', tip) - self.assert_args('walk', '(tree, visitor, walker, verbose)', tip) - self.assert_in('parseFile' , tip) - else: - self.assert_args('parse', '(source, filename, mode)', tip) - self.assert_args('walk', '(node)', tip) - self.assert_in('parse' , tip) - - - def check_args(self, t, *expected): - for x in expected: - if x == t[2]: - return - self.fail('Found: %s. Expected: %s' % (t[2], expected)) - - - def assert_args(self, tok, args, tips): - for a in tips[1]: - if tok == a[0]: - self.assertEqual(args, a[2]) - return - raise AssertionError('%s not in %s', tok, tips) - - def assert_in(self, tok, tips): - for a in tips[1]: - if tok == a[0]: - return a - raise AssertionError('%s not in %s' % (tok, tips)) - - - def test_search(self): - s = _pydev_imports_tipper.search_definition('inspect.ismodule') - (f, line, col), foundAs = s - self.assertTrue(line > 0) - - - def test_dot_net_libraries(self): - if sys.platform == 'cli': - tip = _pydev_imports_tipper.generate_tip('System.Drawing') - self.assert_in('Brushes' , tip) - - tip = _pydev_imports_tipper.generate_tip('System.Drawing.Brushes') - self.assert_in('Aqua' , tip) - - - def test_inspect(self): - - class C(object): - def metA(self, a, b): - pass - - obj = C.metA - if inspect.ismethod (obj): - pass -# print_ obj.im_func -# print_ inspect.getargspec(obj.im_func) diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-glut.py pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-glut.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-glut.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-glut.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -#!/usr/bin/env python -"""Simple GLUT example to manually test event loop integration. - -To run this: -1) Enable the PyDev GUI event loop integration for glut -2) do an execfile on this script -3) ensure you have a working GUI simultaneously with an - interactive console -4) run: gl.glClearColor(1,1,1,1) -""" - -if __name__ == '__main__': - - #!/usr/bin/env python - import sys - import OpenGL.GL as gl - import OpenGL.GLUT as glut - - def close(): - glut.glutDestroyWindow(glut.glutGetWindow()) - - def display(): - gl.glClear (gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT) - glut.glutSwapBuffers() - - def resize(width,height): - gl.glViewport(0, 0, width, height+4) - gl.glMatrixMode(gl.GL_PROJECTION) - gl.glLoadIdentity() - gl.glOrtho(0, width, 0, height+4, -1, 1) - gl.glMatrixMode(gl.GL_MODELVIEW) - - if glut.glutGetWindow() > 0: - interactive = True - glut.glutInit(sys.argv) - glut.glutInitDisplayMode(glut.GLUT_DOUBLE | - glut.GLUT_RGBA | - glut.GLUT_DEPTH) - else: - interactive = False - - glut.glutCreateWindow('gui-glut') - glut.glutDisplayFunc(display) - glut.glutReshapeFunc(resize) - # This is necessary on osx to be able to close the window - # (else the close button is disabled) - if sys.platform == 'darwin' and not bool(glut.HAVE_FREEGLUT): - glut.glutWMCloseFunc(close) - gl.glClearColor(0,0,0,1) - - if not interactive: - glut.glutMainLoop() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-gtk3.py pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-gtk3.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-gtk3.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-gtk3.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -#!/usr/bin/env python -"""Simple Gtk example to manually test event loop integration. - -To run this: -1) Enable the PyDev GUI event loop integration for gtk3 -2) do an execfile on this script -3) ensure you have a working GUI simultaneously with an - interactive console -""" - -if __name__ == '__main__': - from gi.repository import Gtk - - - def hello_world(wigdet, data=None): - print("Hello World") - - def delete_event(widget, event, data=None): - return False - - def destroy(widget, data=None): - Gtk.main_quit() - - window = Gtk.Window(Gtk.WindowType.TOPLEVEL) - window.connect("delete_event", delete_event) - window.connect("destroy", destroy) - button = Gtk.Button("Hello World") - button.connect("clicked", hello_world, None) - - window.add(button) - button.show() - window.show() - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-gtk.py pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-gtk.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-gtk.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-gtk.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -#!/usr/bin/env python -"""Simple GTK example to manually test event loop integration. - -To run this: -1) Enable the PyDev GUI event loop integration for gtk -2) do an execfile on this script -3) ensure you have a working GUI simultaneously with an - interactive console -""" - -if __name__ == '__main__': - import pygtk - pygtk.require('2.0') - import gtk - - - def hello_world(wigdet, data=None): - print("Hello World") - - def delete_event(widget, event, data=None): - return False - - def destroy(widget, data=None): - gtk.main_quit() - - window = gtk.Window(gtk.WINDOW_TOPLEVEL) - window.connect("delete_event", delete_event) - window.connect("destroy", destroy) - button = gtk.Button("Hello World") - button.connect("clicked", hello_world, None) - - window.add(button) - button.show() - window.show() - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-pyglet.py pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-pyglet.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-pyglet.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-pyglet.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -#!/usr/bin/env python -"""Simple pyglet example to manually test event loop integration. - -To run this: -1) Enable the PyDev GUI event loop integration for pyglet -2) do an execfile on this script -3) ensure you have a working GUI simultaneously with an - interactive console -""" - -if __name__ == '__main__': - import pyglet - - - window = pyglet.window.Window() - label = pyglet.text.Label('Hello, world', - font_name='Times New Roman', - font_size=36, - x=window.width//2, y=window.height//2, - anchor_x='center', anchor_y='center') - @window.event - def on_close(): - window.close() - - @window.event - def on_draw(): - window.clear() - label.draw() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-qt.py pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-qt.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-qt.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-qt.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -#!/usr/bin/env python -"""Simple Qt4 example to manually test event loop integration. - -To run this: -1) Enable the PyDev GUI event loop integration for qt -2) do an execfile on this script -3) ensure you have a working GUI simultaneously with an - interactive console - -Ref: Modified from http://zetcode.com/tutorials/pyqt4/firstprograms/ -""" - -if __name__ == '__main__': - import sys - from PyQt4 import QtGui, QtCore - - class SimpleWindow(QtGui.QWidget): - def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) - - self.setGeometry(300, 300, 200, 80) - self.setWindowTitle('Hello World') - - quit = QtGui.QPushButton('Close', self) - quit.setGeometry(10, 10, 60, 35) - - self.connect(quit, QtCore.SIGNAL('clicked()'), - self, QtCore.SLOT('close()')) - - if __name__ == '__main__': - app = QtCore.QCoreApplication.instance() - if app is None: - app = QtGui.QApplication([]) - - sw = SimpleWindow() - sw.show() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-tk.py pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-tk.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-tk.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-tk.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -#!/usr/bin/env python -"""Simple Tk example to manually test event loop integration. - -To run this: -1) Enable the PyDev GUI event loop integration for tk -2) do an execfile on this script -3) ensure you have a working GUI simultaneously with an - interactive console -""" - -if __name__ == '__main__': - - try: - from Tkinter import * - except: - # Python 3 - from tkinter import * - - class MyApp: - - def __init__(self, root): - frame = Frame(root) - frame.pack() - - self.button = Button(frame, text="Hello", command=self.hello_world) - self.button.pack(side=LEFT) - - def hello_world(self): - print("Hello World!") - - root = Tk() - - app = MyApp(root) diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-wx.py pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-wx.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/gui-wx.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/gui-wx.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,103 +0,0 @@ -#!/usr/bin/env python -""" -A Simple wx example to test PyDev's event loop integration. - -To run this: -1) Enable the PyDev GUI event loop integration for wx -2) do an execfile on this script -3) ensure you have a working GUI simultaneously with an - interactive console - -Ref: Modified from wxPython source code wxPython/samples/simple/simple.py -""" - -if __name__ == '__main__': - - import wx - - - class MyFrame(wx.Frame): - """ - This is MyFrame. It just shows a few controls on a wxPanel, - and has a simple menu. - """ - def __init__(self, parent, title): - wx.Frame.__init__(self, parent, -1, title, - pos=(150, 150), size=(350, 200)) - - # Create the menubar - menuBar = wx.MenuBar() - - # and a menu - menu = wx.Menu() - - # add an item to the menu, using \tKeyName automatically - # creates an accelerator, the third param is some help text - # that will show up in the statusbar - menu.Append(wx.ID_EXIT, "E&xit\tAlt-X", "Exit this simple sample") - - # bind the menu event to an event handler - self.Bind(wx.EVT_MENU, self.on_time_to_close, id=wx.ID_EXIT) - - # and put the menu on the menubar - menuBar.Append(menu, "&File") - self.SetMenuBar(menuBar) - - self.CreateStatusBar() - - # Now create the Panel to put the other controls on. - panel = wx.Panel(self) - - # and a few controls - text = wx.StaticText(panel, -1, "Hello World!") - text.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD)) - text.SetSize(text.GetBestSize()) - btn = wx.Button(panel, -1, "Close") - funbtn = wx.Button(panel, -1, "Just for fun...") - - # bind the button events to handlers - self.Bind(wx.EVT_BUTTON, self.on_time_to_close, btn) - self.Bind(wx.EVT_BUTTON, self.on_fun_button, funbtn) - - # Use a sizer to layout the controls, stacked vertically and with - # a 10 pixel border around each - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(text, 0, wx.ALL, 10) - sizer.Add(btn, 0, wx.ALL, 10) - sizer.Add(funbtn, 0, wx.ALL, 10) - panel.SetSizer(sizer) - panel.Layout() - - - def on_time_to_close(self, evt): - """Event handler for the button click.""" - print("See ya later!") - self.Close() - - def on_fun_button(self, evt): - """Event handler for the button click.""" - print("Having fun yet?") - - - class MyApp(wx.App): - def OnInit(self): - frame = MyFrame(None, "Simple wxPython App") - self.SetTopWindow(frame) - - print("Print statements go to this stdout window by default.") - - frame.Show(True) - return True - - - if __name__ == '__main__': - - app = wx.GetApp() - if app is None: - app = MyApp(redirect=False, clearSigInt=False) - else: - frame = MyFrame(None, "Simple wxPython App") - app.SetTopWindow(frame) - print("Print statements go to this stdout window by default.") - frame.Show(True) - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/README pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/README --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_mainloop/README 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_mainloop/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -# Parts of IPython, files from: https://github.com/ipython/ipython/tree/rel-1.0.0/examples/lib -# The files in this folder are manual tests for main loop integration - -# These tests have been modified to work in the PyDev Console context diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_bytecode_many_names_example.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_bytecode_many_names_example.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_bytecode_many_names_example.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_bytecode_many_names_example.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,268 +0,0 @@ - - -def foo(): - a0 = 1 - a1 = 1 - a2 = 1 - a3 = 1 - a4 = 1 - a5 = 1 - a6 = 1 - a7 = 1 - a8 = 1 - a9 = 1 - a10 = 1 - a11 = 1 - a12 = 1 - a13 = 1 - a14 = 1 - a15 = 1 - a16 = 1 - a17 = 1 - a18 = 1 - a19 = 1 - a20 = 1 - a21 = 1 - a22 = 1 - a23 = 1 - a24 = 1 - a25 = 1 - a26 = 1 - a27 = 1 - a28 = 1 - a29 = 1 - a30 = 1 - a31 = 1 - a32 = 1 - a33 = 1 - a34 = 1 - a35 = 1 - a36 = 1 - a37 = 1 - a38 = 1 - a39 = 1 - a40 = 1 - a41 = 1 - a42 = 1 - a43 = 1 - a44 = 1 - a45 = 1 - a46 = 1 - a47 = 1 - a48 = 1 - a49 = 1 - a50 = 1 - a51 = 1 - a52 = 1 - a53 = 1 - a54 = 1 - a55 = 1 - a56 = 1 - a57 = 1 - a58 = 1 - a59 = 1 - a60 = 1 - a61 = 1 - a62 = 1 - a63 = 1 - a64 = 1 - a65 = 1 - a66 = 1 - a67 = 1 - a68 = 1 - a69 = 1 - a70 = 1 - a71 = 1 - a72 = 1 - a73 = 1 - a74 = 1 - a75 = 1 - a76 = 1 - a77 = 1 - a78 = 1 - a79 = 1 - a80 = 1 - a81 = 1 - a82 = 1 - a83 = 1 - a84 = 1 - a85 = 1 - a86 = 1 - a87 = 1 - a88 = 1 - a89 = 1 - a90 = 1 - a91 = 1 - a92 = 1 - a93 = 1 - a94 = 1 - a95 = 1 - a96 = 1 - a97 = 1 - a98 = 1 - a99 = 1 - a100 = 1 - a101 = 1 - a102 = 1 - a103 = 1 - a104 = 1 - a105 = 1 - a106 = 1 - a107 = 1 - a108 = 1 - a109 = 1 - a110 = 1 - a111 = 1 - a112 = 1 - a113 = 1 - a114 = 1 - a115 = 1 - a116 = 1 - a117 = 1 - a118 = 1 - a119 = 1 - a120 = 1 - a121 = 1 - a122 = 1 - a123 = 1 - a124 = 1 - a125 = 1 - a126 = 1 - a127 = 1 - a128 = 1 - a129 = 1 - a130 = 1 - a131 = 1 - a132 = 1 - a133 = 1 - a134 = 1 - a135 = 1 - a136 = 1 - a137 = 1 - a138 = 1 - a139 = 1 - a140 = 1 - a141 = 1 - a142 = 1 - a143 = 1 - a144 = 1 - a145 = 1 - a146 = 1 - a147 = 1 - a148 = 1 - a149 = 1 - a150 = 1 - a151 = 1 - a152 = 1 - a153 = 1 - a154 = 1 - a155 = 1 - a156 = 1 - a157 = 1 - a158 = 1 - a159 = 1 - a160 = 1 - a161 = 1 - a162 = 1 - a163 = 1 - a164 = 1 - a165 = 1 - a166 = 1 - a167 = 1 - a168 = 1 - a169 = 1 - a170 = 1 - a171 = 1 - a172 = 1 - a173 = 1 - a174 = 1 - a175 = 1 - a176 = 1 - a177 = 1 - a178 = 1 - a179 = 1 - a180 = 1 - a181 = 1 - a182 = 1 - a183 = 1 - a184 = 1 - a185 = 1 - a186 = 1 - a187 = 1 - a188 = 1 - a189 = 1 - a190 = 1 - a191 = 1 - a192 = 1 - a193 = 1 - a194 = 1 - a195 = 1 - a196 = 1 - a197 = 1 - a198 = 1 - a199 = 1 - a200 = 1 - a201 = 1 - a202 = 1 - a203 = 1 - a204 = 1 - a205 = 1 - a206 = 1 - a207 = 1 - a208 = 1 - a209 = 1 - a210 = 1 - a211 = 1 - a212 = 1 - a213 = 1 - a214 = 1 - a215 = 1 - a216 = 1 - a217 = 1 - a218 = 1 - a219 = 1 - a220 = 1 - a221 = 1 - a222 = 1 - a223 = 1 - a224 = 1 - a225 = 1 - a226 = 1 - a227 = 1 - a228 = 1 - a229 = 1 - a230 = 1 - a231 = 1 - a232 = 1 - a233 = 1 - a234 = 1 - a235 = 1 - a236 = 1 - a237 = 1 - a238 = 1 - a239 = 1 - a240 = 1 - a241 = 1 - a242 = 1 - a243 = 1 - a244 = 1 - a245 = 1 - a246 = 1 - a247 = 1 - a248 = 1 - a249 = 1 - a250 = 1 - a251 = 1 - a252 = 1 - a253 = 1 - a254 = 1 - a255 = 1 - a256 = 1 - a257 = 1 - a258 = 1 - a259 = 1 - b = a1 + a2 - a260 = 1 - a261 = 1 - return b - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_bytecode_overflow_example.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_bytecode_overflow_example.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_bytecode_overflow_example.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_bytecode_overflow_example.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ -import re - -en_lang_symbols = r'[^\w!@#$%\^-_+=|\}{][\"\';:?\/><.,&)(*\s`\u2019]' -en_words_basic = [] -en_words = [] - -TRACE_MESSAGE = "Trace called" - - -def tracing(): - print(TRACE_MESSAGE) - - -def call_tracing(): - tracing() - - -class Dummy: - non_en_words_limit = 3 - - @staticmethod - def fun(text): - words = tuple(w[0].lower() for w in re.finditer(r'[a-zA-Z]+', text)) - non_en_pass = [] - for i, word in enumerate(words): - non_en = [] - if not (word in en_words_basic - or (word.endswith('s') and word[:-1] in en_words_basic) - or (word.endswith('ed') and word[:-2] in en_words_basic) - or (word.endswith('ing') and word[:-3] in en_words_basic) - or word in en_words - or (word.endswith('s') and word[:-1] in en_words) - or (word.endswith('ed') and word[:-2] in en_words) - or (word.endswith('ing') and word[:-3] in en_words) - ): - - non_en.append(word) - non_en_pass.append(word) - for j in range(1, Dummy.non_en_words_limit): - if i + j >= len(words): - break - word = words[i + j] - - if (word in en_words_basic - or (word.endswith('s') and word[:-1] in en_words_basic) - or (word.endswith('ed') and word[:-2] in en_words_basic) - or (word.endswith('ing') and word[:-3] in en_words_basic) - or word in en_words - or (word.endswith('s') and word[:-1] in en_words) - or (word.endswith('ed') and word[:-2] in en_words) - or (word.endswith('ing') and word[:-3] in en_words) - ): - break - else: - non_en.append(word) - non_en_pass.append(word) - - -class DummyTracing: - non_en_words_limit = 3 - - @staticmethod - def fun(text): - words = tuple(w[0].lower() for w in re.finditer(r'[a-zA-Z]+', text)) - tracing() - non_en_pass = [] - for i, word in enumerate(words): - non_en = [] - if not (word in en_words_basic - or (word.endswith('s') and word[:-1] in en_words_basic) - or (word.endswith('ed') and word[:-2] in en_words_basic) - or (word.endswith('ing') and word[:-3] in en_words_basic) - or word in en_words - or (word.endswith('s') and word[:-1] in en_words) - or (word.endswith('ed') and word[:-2] in en_words) - or (word.endswith('ing') and word[:-3] in en_words) - ): - - non_en.append(word) - non_en_pass.append(word) - for j in range(1, Dummy.non_en_words_limit): - if i + j >= len(words): - break - word = words[i + j] - if (word in en_words_basic - or (word.endswith('s') and word[:-1] in en_words_basic) - or (word.endswith('ed') and word[:-2] in en_words_basic) - or (word.endswith('ing') and word[:-3] in en_words_basic) - or word in en_words - or (word.endswith('s') and word[:-1] in en_words) - or (word.endswith('ed') and word[:-2] in en_words) - or (word.endswith('ing') and word[:-3] in en_words) - ): - break - else: - non_en.append(word) - non_en_pass.append(word) - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case10.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case10.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case10.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case10.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -def Method1(): - print('m1') - print('m1') - -def Method1a(): - print('m1a') - print('m1a') - -def Method2(): - print('m2 before') - Method1() - Method1a() - print('m2 after') - - -if __name__ == '__main__': - Method2() - print('TEST SUCEEDED!') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case13.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case13.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case13.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case13.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ - -class TestProperty(object): - def __init__(self, name = "Default"): - self._x = None - self.name = name - - def get_name(self): - return self.__name - - - def set_name(self, value): - self.__name = value - - - def del_name(self): - del self.__name - name = property(get_name, set_name, del_name, "name's docstring") - - @property - def x(self): - return self._x - - @x.setter - def x(self, value): - self._x = value - - @x.deleter - def x(self): - del self._x - -def main(): - """ - """ - testObj = TestProperty() - testObj.x = 10 - val = testObj.x - - testObj.name = "Pydev" - debugType = testObj.name - print('TEST SUCEEDED!') - -if __name__ == '__main__': - main() \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case14.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case14.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case14.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case14.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ - -class Car(object): - """A car class""" - def __init__(self, model, make, color): - self.model = model - self.make = make - self.color = color - self.price = None - - def get_price(self): - return self.price - - def set_price(self, value): - self.price = value - -availableCars = [] -def main(): - global availableCars - - #Create a new car obj - carObj = Car("Maruti SX4", "2011", "Black") - carObj.set_price(950000) # Set price - # Add this to available cars - availableCars.append(carObj) - - print('TEST SUCEEDED') - -if __name__ == '__main__': - main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case15_execfile.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case15_execfile.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case15_execfile.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case15_execfile.py 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f=lambda x: 'val=%s' % x diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case15.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case15.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case15.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case15.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ - -class Car(object): - """A car class""" - def __init__(self, model, make, color): - self.model = model - self.make = make - self.color = color - self.price = None - - def get_price(self): - return self.price - - def set_price(self, value): - self.price = value - -availableCars = [] -def main(): - global availableCars - - #Create a new car obj - carObj = Car("Maruti SX4", "2011", "Black") - carObj.set_price(950000) # Set price - # Add this to available cars - availableCars.append(carObj) - - print('TEST SUCEEDED') - -if __name__ == '__main__': - main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case16.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case16.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case16.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case16.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -# this test requires numpy to be installed -import numpy - -def main(): - smallarray = numpy.arange(100) * 1 + 1j - bigarray = numpy.arange(100000).reshape((10,10000)) # 100 thousand - hugearray = numpy.arange(10000000) # 10 million - - pass # location of breakpoint after all arrays defined - -main() -print('TEST SUCEEDED') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case17a.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case17a.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case17a.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case17a.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -def m1(): - _a = 'm1' - -def m2(): # @DontTrace - m1() - _a = 'm2' - -def m3(): - m2() - _a = 'm3' - -if __name__ == '__main__': - m3() - - print('TEST SUCEEDED') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case17.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case17.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case17.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case17.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -def get_here(): - a = 10 - -def foo(func): - return func - -def m1(): # @DontTrace - get_here() - -# @DontTrace -def m2(): - get_here() - -# @DontTrace -@foo -def m3(): - get_here() - -@foo -@foo -def m4(): # @DontTrace - get_here() - - -def main(): - - m1() - - m2() - - m3() - - m4() - -if __name__ == '__main__': - main() - - print('TEST SUCEEDED') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case18.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case18.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case18.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case18.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -import sys - -def m2(a): - a = 10 - b = 20 #Break here and set a = 40 - c = 30 - - def function2(): - print(a) - - return a - - -def m1(a): - return m2(a) - - -if __name__ == '__main__': - found = m1(10) - if found == 40: - print('TEST SUCEEDED') - else: - raise AssertionError('Expected variable to be changed to 40. Found: %s' % (found,)) diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case19.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case19.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case19.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case19.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -class A: - - def __init__(self): - self.__var = 10 - -if __name__ == '__main__': - a = A() - print(a._A__var) - # Evaluate 'a.__var' should give a._A__var_ - print('TEST SUCEEDED') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case1.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case1.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case1.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case1.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ -import sys -import weakref - -def set_up(): - observable = Observable() - observer = Observer() - observable.add_observer(observer) - return observable - - -class Observable(object): - def __init__(self): - self.observers = [] - - def add_observer(self, observer): - sys.stdout.write( 'observer %s\n' % (observer,)) - ref = weakref.ref(observer) - self.observers.append(ref) - sys.stdout.write('weakref: %s\n' % (ref(),)) - - def Notify(self): - for o in self.observers: - o = o() - - - try: - import gc - except ImportError: - o = None #some jython does not have gc, so, there's no sense testing this in it - else: - try: - gc.get_referrers(o) - except: - o = None #jython and ironpython do not have get_referrers - - if o is not None: - sys.stdout.write('still observing %s\n' % (o,)) - sys.stdout.write('number of referrers: %s\n' % len(gc.get_referrers(o))) - frame = gc.get_referrers(o)[0] - frame_referrers = gc.get_referrers(frame) - sys.stdout.write('frame referrer %s\n' % (frame_referrers,)) - referrers1 = gc.get_referrers(frame_referrers[1]) - sys.stdout.write('%s\n' % (referrers1,)) - sys.stderr.write('TEST FAILED: The observer should have died, even when running in debug\n') - else: - sys.stdout.write('TEST SUCEEDED: observer died\n') - - sys.stdout.flush() - sys.stderr.flush() - -class Observer(object): - pass - - -def main(): - observable = set_up() - observable.Notify() - - -if __name__ == '__main__': - main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case20.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case20.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case20.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case20.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -def fn_with_except(): - try: - raise Exception() - except: - pass - - -def test_except(): - fn_with_except() - fn_with_except() - - -if __name__ == '__main__': - test_except() - print('TEST SUCEEDED') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case2.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case2.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case2.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case2.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - -def Call4(): - print('Start Call4') - print('End Call4') - -def Call3(): - print('Start Call3') - Call4() - print('End Call3') - -def Call2(): - print('Start Call2') - Call3() - print('End Call2 - a') - print('End Call2 - b') - -def Call1(): - print('Start Call1') - Call2() - print('End Call1') - -if __name__ == '__main__': - Call1() - print('TEST SUCEEDED!') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case3.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case3.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case3.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case3.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -import time -if __name__ == '__main__': - for i in range(15): - print('here') - time.sleep(.2) - - print('TEST SUCEEDED') - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case4.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case4.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case4.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case4.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -import time -if __name__ == '__main__': - for i in range(10): - print('here %s' % i) - time.sleep(1) - - print('TEST SUCEEDED') - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case56.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case56.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case56.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case56.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -def Call2(): - print('Call2') - -def Call1(a): - print('Call1') - -if __name__ == '__main__': - Call1(Call2()) - print('TEST SUCEEDED!') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case7.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case7.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case7.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case7.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -def Call(): - variable_for_test_1 = 10 - variable_for_test_2 = 20 - variable_for_test_3 = 30 - -if __name__ == '__main__': - Call() - print('TEST SUCEEDED!') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case89.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case89.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case89.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case89.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -def Method1(): - print('m1') - -def Method2(): - print('m2 before') - Method1() - print('m2 after') - -def Method3(): - print('m3 before') - Method2() - print('m3 after') - -if __name__ == '__main__': - Method3() - print('TEST SUCEEDED!') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_event_ext.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_event_ext.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_event_ext.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_event_ext.py 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -# File empty. Output is in the extension itself \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_module_entry_point.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_module_entry_point.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_module_entry_point.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_module_entry_point.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -def main(): - print('TEST SUCEEDED!') \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_m_switch_2.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_m_switch_2.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_m_switch_2.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_m_switch_2.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -class ClassToBeImported(object): - pass \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_m_switch.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_m_switch.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_m_switch.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_m_switch.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -from . import _debugger_case_m_switch_2 -print(_debugger_case_m_switch_2.ClassToBeImported) -print('TEST SUCEEDED!') \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_qthread1.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_qthread1.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_qthread1.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_qthread1.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -import time -import sys - -try: - from PySide import QtCore # @UnresolvedImport -except: - try: - from PyQt4 import QtCore - except: - from PyQt5 import QtCore - -# Subclassing QThread -# http://doc.qt.nokia.com/latest/qthread.html -class AThread(QtCore.QThread): - - def run(self): - count = 0 - while count < 5: - time.sleep(.5) - print("Increasing", count);sys.stdout.flush() - count += 1 - -app = QtCore.QCoreApplication([]) -thread = AThread() -thread.finished.connect(app.exit) -thread.start() -app.exec_() -print('TEST SUCEEDED!') \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_qthread2.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_qthread2.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_qthread2.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_qthread2.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -import time -import sys - -try: - from PySide import QtCore # @UnresolvedImport -except: - try: - from PyQt4 import QtCore - except: - from PyQt5 import QtCore - -# Subclassing QObject and using moveToThread -# http://labs.qt.nokia.com/2007/07/05/qthreads-no-longer-abstract/ -class SomeObject(QtCore.QObject): - - try: - finished = QtCore.Signal() # @UndefinedVariable - except: - finished = QtCore.pyqtSignal() # @UndefinedVariable - - def long_running(self): - count = 0 - while count < 5: - time.sleep(.5) - print("Increasing") - count += 1 - self.finished.emit() - -app = QtCore.QCoreApplication([]) -objThread = QtCore.QThread() -obj = SomeObject() -obj.moveToThread(objThread) -obj.finished.connect(objThread.quit) -objThread.started.connect(obj.long_running) -objThread.finished.connect(app.exit) -objThread.start() -app.exec_() -print('TEST SUCEEDED!') \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_qthread3.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_qthread3.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_qthread3.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_qthread3.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -import time -import sys - -try: - from PySide import QtCore # @UnresolvedImport -except: - try: - from PyQt4 import QtCore - except: - from PyQt5 import QtCore - -# Using a QRunnable -# http://doc.qt.nokia.com/latest/qthreadpool.html -# Note that a QRunnable isn't a subclass of QObject and therefore does -# not provide signals and slots. -class Runnable(QtCore.QRunnable): - - def run(self): - count = 0 - app = QtCore.QCoreApplication.instance() - while count < 5: - print("Increasing") - time.sleep(.5) - count += 1 - app.quit() - - -app = QtCore.QCoreApplication([]) -runnable = Runnable() -QtCore.QThreadPool.globalInstance().start(runnable) -app.exec_() -QtCore.QThreadPool.globalInstance().waitForDone() -print('TEST SUCEEDED!') \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_qthread4.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_qthread4.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_qthread4.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_qthread4.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -try: - from PySide import QtCore -except: - try: - from PyQt4 import QtCore - except: - from PyQt5 import QtCore - -class TestObject(QtCore.QObject): - """ - Test class providing some non-argument signal - """ - - try: - testSignal = QtCore.Signal() # @UndefinedVariable - except: - testSignal = QtCore.pyqtSignal() # @UndefinedVariable - - -class TestThread(QtCore.QThread): - - def run(self): - QtCore.QThread.sleep(4) - print('Done sleeping') - -def on_start(): - print('On start called1') - print('On start called2') - -app = QtCore.QCoreApplication([]) -some_thread = TestThread() -some_object = TestObject() - -# connect QThread.started to the signal -some_thread.started.connect(some_object.testSignal) -some_object.testSignal.connect(on_start) -some_thread.finished.connect(app.quit) - -some_thread.start() -app.exec_() -print('TEST SUCEEDED!') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_remote_1.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_remote_1.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_remote_1.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_remote_1.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -if __name__ == '__main__': - import subprocess - import sys - import os - import _debugger_case_remote_2 - root_dirname = os.path.dirname(os.path.dirname(__file__)) - - if root_dirname not in sys.path: - sys.path.append(root_dirname) - - import pydevd - - print('before pydevd.settrace') - sys.stdout.flush() - pydevd.settrace(host='127.0.0.1', port=8787, patch_multiprocessing=True) - print('after pydevd.settrace') - sys.stdout.flush() - f = _debugger_case_remote_2.__file__ - if f.endswith('.pyc'): - f = f[:-1] - elif f.endswith('$py.class'): - f = f[:-len('$py.class')] + '.py' - print('before call') - sys.stdout.flush() - subprocess.check_call([sys.executable, '-u', f]) - print('after call') - sys.stdout.flush() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_remote_2.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_remote_2.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_remote_2.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_remote_2.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -if __name__ == '__main__': - print('Run as main: %s' % (__file__,)) - import sys - sys.stdout.flush() - import pydevd - # Just check that we're already connected - assert pydevd.GetGlobalDebugger() is not None - print('finish') - sys.stdout.flush() - print('TEST SUCEEDED!') - sys.stdout.flush() \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_remote.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_remote.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_remote.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_remote.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -if __name__ == '__main__': - import os - import sys - root_dirname = os.path.dirname(os.path.dirname(__file__)) - - if root_dirname not in sys.path: - sys.path.append(root_dirname) - - import pydevd - print('before pydevd.settrace') - pydevd.settrace(host='127.0.0.1', port=8787) - print('after pydevd.settrace') - print('TEST SUCEEDED!') - \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_set_next_statement.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_set_next_statement.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_set_next_statement.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_set_next_statement.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ -def method(): - a = 1 - print('call %s' % (a,)) - a = 2 - print('call %s' % (a,)) - a = 3 - -if __name__ == '__main__': - method() - print('TEST SUCEEDED!') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_type_ext.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_type_ext.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_debugger_case_type_ext.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_debugger_case_type_ext.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -class Rect(object): - def __init__(self, l, w): - super(Rect, self).__init__() - self.length = l - self.width = w -my_rect=Rect(5, 10) -print('TEST SUCEEDED!') - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/debugger_unittest.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/debugger_unittest.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/debugger_unittest.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/debugger_unittest.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,602 +0,0 @@ -try: - from urllib import quote, quote_plus, unquote_plus -except ImportError: - from urllib.parse import quote, quote_plus, unquote_plus #@UnresolvedImport - - -import os -import socket -import subprocess -import sys -import threading -import time - -from _pydev_bundle import pydev_localhost - - -IS_PY3K = sys.version_info[0] >= 3 - -# Note: copied (don't import because we want it to be independent on the actual code because of backward compatibility). -CMD_RUN = 101 -CMD_LIST_THREADS = 102 -CMD_THREAD_CREATE = 103 -CMD_THREAD_KILL = 104 -CMD_THREAD_SUSPEND = 105 -CMD_THREAD_RUN = 106 -CMD_STEP_INTO = 107 -CMD_STEP_OVER = 108 -CMD_STEP_RETURN = 109 -CMD_GET_VARIABLE = 110 -CMD_SET_BREAK = 111 -CMD_REMOVE_BREAK = 112 -CMD_EVALUATE_EXPRESSION = 113 -CMD_GET_FRAME = 114 -CMD_EXEC_EXPRESSION = 115 -CMD_WRITE_TO_CONSOLE = 116 -CMD_CHANGE_VARIABLE = 117 -CMD_RUN_TO_LINE = 118 -CMD_RELOAD_CODE = 119 -CMD_GET_COMPLETIONS = 120 - -# Note: renumbered (conflicted on merge) -CMD_CONSOLE_EXEC = 121 -CMD_ADD_EXCEPTION_BREAK = 122 -CMD_REMOVE_EXCEPTION_BREAK = 123 -CMD_LOAD_SOURCE = 124 -CMD_ADD_DJANGO_EXCEPTION_BREAK = 125 -CMD_REMOVE_DJANGO_EXCEPTION_BREAK = 126 -CMD_SET_NEXT_STATEMENT = 127 -CMD_SMART_STEP_INTO = 128 -CMD_EXIT = 129 -CMD_SIGNATURE_CALL_TRACE = 130 - - - -CMD_SET_PY_EXCEPTION = 131 -CMD_GET_FILE_CONTENTS = 132 -CMD_SET_PROPERTY_TRACE = 133 -# Pydev debug console commands -CMD_EVALUATE_CONSOLE_EXPRESSION = 134 -CMD_RUN_CUSTOM_OPERATION = 135 -CMD_GET_BREAKPOINT_EXCEPTION = 136 -CMD_STEP_CAUGHT_EXCEPTION = 137 -CMD_SEND_CURR_EXCEPTION_TRACE = 138 -CMD_SEND_CURR_EXCEPTION_TRACE_PROCEEDED = 139 -CMD_IGNORE_THROWN_EXCEPTION_AT = 140 -CMD_ENABLE_DONT_TRACE = 141 -CMD_SHOW_CONSOLE = 142 - -CMD_GET_ARRAY = 143 -CMD_STEP_INTO_MY_CODE = 144 -CMD_GET_CONCURRENCY_EVENT = 145 - -CMD_VERSION = 501 -CMD_RETURN = 502 -CMD_ERROR = 901 - - - -# Always True (because otherwise when we do have an error, it's hard to diagnose). -SHOW_WRITES_AND_READS = True -SHOW_OTHER_DEBUG_INFO = True -SHOW_STDOUT = True - - -try: - from thread import start_new_thread -except ImportError: - from _thread import start_new_thread # @UnresolvedImport - -try: - xrange -except: - xrange = range - - -#======================================================================================================================= -# ReaderThread -#======================================================================================================================= -class ReaderThread(threading.Thread): - - def __init__(self, sock): - threading.Thread.__init__(self) - try: - from queue import Queue - except ImportError: - from Queue import Queue - - self.setDaemon(True) - self.sock = sock - self._queue = Queue() - self.all_received = [] - self._kill = False - - def get_next_message(self, context_messag): - try: - msg = self._queue.get(block=True, timeout=15) - except: - raise AssertionError('No message was written in 15 seconds. Error message:\n%s' % (context_messag,)) - else: - frame = sys._getframe().f_back - frame_info = ' -- File "%s", line %s, in %s\n' % (frame.f_code.co_filename, frame.f_lineno, frame.f_code.co_name) - frame_info += ' -- File "%s", line %s, in %s\n' % (frame.f_back.f_code.co_filename, frame.f_back.f_lineno, frame.f_back.f_code.co_name) - frame = None - sys.stdout.write('Message returned in get_next_message(): %s -- ctx: %s, returned to:\n%s\n' % (msg, context_messag, frame_info)) - return msg - - def run(self): - try: - buf = '' - while not self._kill: - l = self.sock.recv(1024) - if IS_PY3K: - l = l.decode('utf-8') - self.all_received.append(l) - buf += l - - while '\n' in buf: - # Print each part... - i = buf.index('\n')+1 - last_received = buf[:i] - buf = buf[i:] - - if SHOW_WRITES_AND_READS: - print('Test Reader Thread Received %s' % (last_received, )) - - self._queue.put(last_received) - except: - pass # ok, finished it - finally: - del self.all_received[:] - - def do_kill(self): - self._kill = True - if hasattr(self, 'sock'): - self.sock.close() - - -class DebuggerRunner(object): - - def get_command_line(self): - ''' - Returns the base command line (i.e.: ['python.exe', '-u']) - ''' - raise NotImplementedError - - def add_command_line_args(self, args): - writer_thread = self.writer_thread - port = int(writer_thread.port) - - localhost = pydev_localhost.get_localhost() - ret = args + [ - writer_thread.get_pydevd_file(), - '--DEBUG_RECORD_SOCKET_READS', - '--qt-support', - '--client', - localhost, - '--port', - str(port), - ] - - if writer_thread.IS_MODULE: - ret += ['--module'] - - ret = ret + ['--file'] + writer_thread.get_command_line_args() - return ret - - def check_case(self, writer_thread_class): - writer_thread = writer_thread_class() - try: - writer_thread.start() - for _i in xrange(40000): - if hasattr(writer_thread, 'port'): - break - time.sleep(.01) - self.writer_thread = writer_thread - - args = self.get_command_line() - - args = self.add_command_line_args(args) - - if SHOW_OTHER_DEBUG_INFO: - print('executing', ' '.join(args)) - - ret = self.run_process(args, writer_thread) - finally: - writer_thread.do_kill() - writer_thread.log = [] - - stdout = ret['stdout'] - stderr = ret['stderr'] - writer_thread.additional_output_checks(''.join(stdout), ''.join(stderr)) - return ret - - def create_process(self, args, writer_thread): - process = subprocess.Popen( - args, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - cwd=writer_thread.get_cwd() if writer_thread is not None else '.', - env=writer_thread.get_environ() if writer_thread is not None else None, - ) - return process - - def run_process(self, args, writer_thread): - process = self.create_process(args, writer_thread) - stdout = [] - stderr = [] - finish = [False] - - try: - def read(stream, buffer): - for line in stream.readlines(): - if finish[0]: - return - if IS_PY3K: - line = line.decode('utf-8') - - if SHOW_STDOUT: - sys.stdout.write('stdout: %s' % (line,)) - buffer.append(line) - - start_new_thread(read, (process.stdout, stdout)) - - - if SHOW_OTHER_DEBUG_INFO: - print('Both processes started') - - # polls can fail (because the process may finish and the thread still not -- so, we give it some more chances to - # finish successfully). - initial_time = time.time() - shown_intermediate = False - while True: - if process.poll() is not None: - break - else: - if writer_thread is not None: - if not writer_thread.isAlive(): - if writer_thread.FORCE_KILL_PROCESS_WHEN_FINISHED_OK: - process.kill() - continue - - if not shown_intermediate and (time.time() - initial_time > 10): - print('Warning: writer thread exited and process still did not (%.2fs seconds elapsed).' % (time.time() - initial_time,)) - shown_intermediate = True - - if time.time() - initial_time > 20: - process.kill() - time.sleep(.2) - self.fail_with_message( - "The other process should've exited but still didn't (%.2fs seconds timeout for process to exit)." % (time.time() - initial_time,), - stdout, stderr, writer_thread - ) - time.sleep(.2) - - - if writer_thread is not None: - if not writer_thread.FORCE_KILL_PROCESS_WHEN_FINISHED_OK: - poll = process.poll() - if poll < 0: - self.fail_with_message( - "The other process exited with error code: " + str(poll), stdout, stderr, writer_thread) - - - if stdout is None: - self.fail_with_message( - "The other process may still be running -- and didn't give any output.", stdout, stderr, writer_thread) - - check = 0 - while 'TEST SUCEEDED' not in ''.join(stdout): - check += 1 - if check == 50: - self.fail_with_message("TEST SUCEEDED not found in stdout.", stdout, stderr, writer_thread) - time.sleep(.1) - - for _i in xrange(100): - if not writer_thread.finished_ok: - time.sleep(.1) - - if not writer_thread.finished_ok: - self.fail_with_message( - "The thread that was doing the tests didn't finish successfully.", stdout, stderr, writer_thread) - finally: - finish[0] = True - - return {'stdout':stdout, 'stderr':stderr} - - def fail_with_message(self, msg, stdout, stderr, writerThread): - raise AssertionError(msg+ - "\n\n===========================\nStdout: \n"+''.join(stdout)+ - "\n\n===========================\nStderr:"+''.join(stderr)+ - "\n\n===========================\nLog:\n"+'\n'.join(getattr(writerThread, 'log', []))) - - - -#======================================================================================================================= -# AbstractWriterThread -#======================================================================================================================= -class AbstractWriterThread(threading.Thread): - - FORCE_KILL_PROCESS_WHEN_FINISHED_OK = False - IS_MODULE = False - - def __init__(self): - threading.Thread.__init__(self) - self.setDaemon(True) - self.finished_ok = False - self._next_breakpoint_id = 0 - self.log = [] - - def additional_output_checks(self, stdout, stderr): - pass - - def get_environ(self): - return None - - def get_pydevd_file(self): - dirname = os.path.dirname(__file__) - dirname = os.path.dirname(dirname) - return os.path.abspath(os.path.join(dirname, 'pydevd.py')) - - def get_cwd(self): - return os.path.dirname(self.get_pydevd_file()) - - def get_command_line_args(self): - return [self.TEST_FILE] - - def do_kill(self): - if hasattr(self, 'server_socket'): - self.server_socket.close() - - if hasattr(self, 'reader_thread'): - # if it's not created, it's not there... - self.reader_thread.do_kill() - if hasattr(self, 'sock'): - self.sock.close() - - def write(self, s): - self.log.append('write: %s' % (s,)) - - if SHOW_WRITES_AND_READS: - print('Test Writer Thread Written %s' % (s,)) - msg = s + '\n' - if IS_PY3K: - msg = msg.encode('utf-8') - self.sock.send(msg) - - def start_socket(self, port=None): - from _pydev_bundle.pydev_localhost import get_socket_name - if SHOW_WRITES_AND_READS: - print('start_socket') - - if port is None: - socket_name = get_socket_name(close=True) - else: - socket_name = (pydev_localhost.get_localhost(), port) - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - s.bind(socket_name) - self.port = socket_name[1] - s.listen(1) - if SHOW_WRITES_AND_READS: - print('Waiting in socket.accept()') - self.server_socket = s - newSock, addr = s.accept() - if SHOW_WRITES_AND_READS: - print('Test Writer Thread Socket:', newSock, addr) - - reader_thread = self.reader_thread = ReaderThread(newSock) - reader_thread.start() - self.sock = newSock - - self._sequence = -1 - # initial command is always the version - self.write_version() - self.log.append('start_socket') - - def next_breakpoint_id(self): - self._next_breakpoint_id += 1 - return self._next_breakpoint_id - - def next_seq(self): - self._sequence += 2 - return self._sequence - - def wait_for_new_thread(self): - # wait for hit breakpoint - last = '' - while not ' - splitted = last.split('"') - thread_id = splitted[3] - return thread_id - - def wait_for_breakpoint_hit(self, *args, **kwargs): - return self.wait_for_breakpoint_hit_with_suspend_type(*args, **kwargs)[:-1] - - def wait_for_breakpoint_hit_with_suspend_type(self, reason='111', get_line=False, get_name=False): - ''' - 108 is over - 109 is return - 111 is breakpoint - ''' - self.log.append('Start: wait_for_breakpoint_hit') - # wait for hit breakpoint - last = '' - while not ('stop_reason="%s"' % reason) in last: - last = self.reader_thread.get_next_message('wait_for_breakpoint_hit. reason=%s' % (reason,)) - - # we have something like - {% for entry in entries %} -
  • - {{ entry.key }} - : - {{ entry.val }} -
  • - {% endfor %} - -{% else %} -

    No entries are available.

    -{% endif %} \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/templates/my_app/name.html pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/templates/my_app/name.html --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/templates/my_app/name.html 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/templates/my_app/name.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -
    - {% csrf_token %} - {{ form }} - It is {% now "jS F Y H:i" %} - -
    -

    End of form

    \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/tests.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/tests.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/tests.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/tests.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/urls.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/urls.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/urls.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/urls.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -from django.conf.urls import url - -from . import views - -urlpatterns = [ - url(r'^$', views.index, name='index'), - url(r'^name$', views.get_name, name='name'), -] \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/views.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/views.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/views.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_app/views.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -from django.shortcuts import render - -# Create your views here. -from django.http import HttpResponse, HttpResponseRedirect -import sys -from .forms import NameForm - -class Entry(object): - - def __init__(self, key, val): - self.key = key - self.val = val - - def __unicode__(self): - return u'%s:%s' % (self.key, self.val) - - def __str__(self): - return u'%s:%s' % (self.key, self.val) - -def index(request): - context = { - 'entries': [Entry('v1', 'v1'), Entry('v2', 'v2')] - } - ret = render(request, 'my_app/index.html', context) - return ret - -def get_name(request): - # if this is a POST request we need to process the form data - if request.method == 'POST': - # create a form instance and populate it with data from the request: - form = NameForm(request.POST) - # check whether it's valid: - if form.is_valid(): - # process the data in form.cleaned_data as required - # ... - # redirect to a new URL: - return HttpResponseRedirect('/thanks/') - - # if a GET (or any other method) we'll create a blank form - else: - form = NameForm(data= {'your_name': 'unknown name'}) - - return render(request, 'my_app/name.html', {'form': form}) \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/settings.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/settings.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/settings.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/settings.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -""" -Django settings for my_django_proj_17 project. - -For more information on this file, see -https://docs.djangoproject.com/en/1.7/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/1.7/ref/settings/ -""" - -# Build paths inside the project like this: os.path.join(BASE_DIR, ...) -import os -BASE_DIR = os.path.dirname(os.path.dirname(__file__)) - - -# Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = '5_sue9bp&j=45#%_hcx3f34k!qnt$mxfd&7zq@7c7t@sn4_l)b' - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -TEMPLATE_DEBUG = True - -ALLOWED_HOSTS = [] - - -# Application definition - -INSTALLED_APPS = ( - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'my_app', -) - -MIDDLEWARE_CLASSES = ( - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', -) - -ROOT_URLCONF = 'my_django_proj_17.urls' - -WSGI_APPLICATION = 'my_django_proj_17.wsgi.application' - - -# Database -# https://docs.djangoproject.com/en/1.7/ref/settings/#databases - -# No database for our test. - -# DATABASES = { -# 'default': { -# 'ENGINE': 'django.db.backends.sqlite3', -# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), -# } -# } - -# Internationalization -# https://docs.djangoproject.com/en/1.7/topics/i18n/ - -LANGUAGE_CODE = 'en-us' - -TIME_ZONE = 'UTC' - -USE_I18N = True - -USE_L10N = True - -USE_TZ = True - - -# Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/1.7/howto/static-files/ - -STATIC_URL = '/static/' diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/urls.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/urls.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/urls.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/urls.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -from django.conf.urls import patterns, include, url -from django.contrib import admin - -urlpatterns = patterns('', - # Examples: - # url(r'^$', 'my_django_proj_17.views.home', name='home'), - # url(r'^blog/', include('blog.urls')), - - url(r'^admin/', include(admin.site.urls)), - url(r'^my_app/', include('my_app.urls')), -) diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/wsgi.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/wsgi.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/wsgi.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_django_proj_17/my_django_proj_17/wsgi.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -""" -WSGI config for my_django_proj_17 project. - -It exposes the WSGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/ -""" - -import os -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_django_proj_17.settings") - -from django.core.wsgi import get_wsgi_application -application = get_wsgi_application() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/__init__.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/__init__.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/__init__.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/__init__.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -try: - __import__('pkg_resources').declare_namespace(__name__) -except: - import pkgutil - __path__ = pkgutil.extend_path(__path__, __name__) diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/pydevd_plugin_test_events.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/pydevd_plugin_test_events.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/pydevd_plugin_test_events.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/pydevd_plugin_test_events.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -from _pydevd_bundle.pydevd_extension_api import DebuggerEventHandler -import os -import sys - - -class VerifyEvent(object): - def on_debugger_modules_loaded(self, **kwargs): - print ("INITIALIZE EVENT RECEIVED") - # check that some core modules are loaded before this callback is invoked - modules_loaded = all(mod in sys.modules for mod in ('pydevd_file_utils', '_pydevd_bundle.pydevd_constants')) - if modules_loaded: - print ("TEST SUCEEDED") # incorrect spelling on purpose - else: - print ("TEST FAILED") - - -if os.environ.get("VERIFY_EVENT_TEST"): - DebuggerEventHandler.register(VerifyEvent) diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/pydevd_plugin_test_exttype.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/pydevd_plugin_test_exttype.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/pydevd_plugin_test_exttype.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/extensions/pydevd_plugin_test_exttype.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -from _pydevd_bundle.pydevd_extension_api import StrPresentationProvider, TypeResolveProvider - - -class RectResolver(TypeResolveProvider): - def get_dictionary(self, var): - return {'length': var.length, 'width': var.width, 'area': var.length * var.width} - - def resolve(self, var, attribute): - return getattr(var, attribute, None) if attribute != 'area' else var.length * var.width - - def can_provide(self, type_object, type_name): - return type_name.endswith('Rect') - - -class RectToString(StrPresentationProvider): - def get_str(self, val): - return "Rectangle[Length: %s, Width: %s , Area: %s]" % (val.length, val.width, val.length * val.width) - - def can_provide(self, type_object, type_name): - return type_name.endswith('Rect') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/__init__.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/__init__.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/__init__.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/my_extensions/pydevd_plugins/__init__.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -try: - __import__('pkg_resources').declare_namespace(__name__) -except: - import pkgutil - __path__ = pkgutil.extend_path(__path__, __name__) diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_performance_1.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_performance_1.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_performance_1.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_performance_1.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -import time - -try: - xrange -except: - xrange = range - -def method2(): - i = 1 - -def method(): - - for i in xrange(200000): - method2() - - if False: - # Unreachable breakpoint here - pass - -def caller(): - start_time = time.time() - method() - print('TotalTime>>%s<<' % (time.time()-start_time,)) - -if __name__ == '__main__': - import sys - if '--regular-trace' in sys.argv: - def trace_dispatch(frame, event, arg): - return trace_dispatch - sys.settrace(trace_dispatch) - - caller() # Initial breakpoint for a step-over here - print('TEST SUCEEDED') diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_performance_2.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_performance_2.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_performance_2.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_performance_2.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -import time -start_time = time.time() - -try: - xrange # @UndefinedVariable -except NameError: - xrange = range - -from itertools import groupby -from random import randrange - -letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' - -# create an array of random strings of 40 characters each -l = sorted([''.join([letters[randrange(0, 26)] for _ in range(40)]) for _ in xrange(10000)]) - -# group by the first two characters -g = {k: list(v) for k, v in groupby(l, lambda x: x[:2])} - -print(len(g.get('AA'))) - -if False: - pass # Breakpoint here - -print('TotalTime>>%s<<' % (time.time()-start_time,)) -print('TEST SUCEEDED') \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_performance_3.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/_performance_3.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/_performance_3.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/_performance_3.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -import time -start_time = time.time() - -try: - xrange # @UndefinedVariable -except NameError: - xrange = range - -# do some busy work in parallel -print("Started main task") -x = 0 -for i in xrange(1000000): - x += 1 -print("Completed main task") - -if False: - pass # Breakpoint here - -print('TotalTime>>%s<<' % (time.time()-start_time,)) -print('TEST SUCEEDED') \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/performance_check.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/performance_check.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/performance_check.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/performance_check.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,225 +0,0 @@ -import debugger_unittest -import sys -import re -import os -import math - -CHECK_BASELINE, CHECK_REGULAR, CHECK_CYTHON = 'baseline', 'regular', 'cython' - -class PerformanceWriterThread(debugger_unittest.AbstractWriterThread): - - CHECK = None - - debugger_unittest.AbstractWriterThread.get_environ # overrides - def get_environ(self): - env = os.environ.copy() - if self.CHECK == CHECK_BASELINE: - env['PYTHONPATH'] = r'X:\PyDev.Debugger.baseline' - elif self.CHECK == CHECK_CYTHON: - env['PYDEVD_USE_CYTHON'] = 'YES' - elif self.CHECK == CHECK_REGULAR: - env['PYDEVD_USE_CYTHON'] = 'NO' - else: - raise AssertionError("Don't know what to check.") - return env - - debugger_unittest.AbstractWriterThread.get_pydevd_file # overrides - def get_pydevd_file(self): - if self.CHECK == CHECK_BASELINE: - return os.path.abspath(os.path.join(r'X:\PyDev.Debugger.baseline', 'pydevd.py')) - dirname = os.path.dirname(__file__) - dirname = os.path.dirname(dirname) - return os.path.abspath(os.path.join(dirname, 'pydevd.py')) - - -class WriterThreadPerformance1(PerformanceWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_performance_1.py') - BENCHMARK_NAME = 'method_calls_with_breakpoint' - - def run(self): - self.start_socket() - self.write_add_breakpoint(17, 'method') - self.write_make_initial_run() - self.finished_ok = True - -class WriterThreadPerformance2(PerformanceWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_performance_1.py') - BENCHMARK_NAME = 'method_calls_without_breakpoint' - - def run(self): - self.start_socket() - self.write_make_initial_run() - self.finished_ok = True - -class WriterThreadPerformance3(PerformanceWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_performance_1.py') - BENCHMARK_NAME = 'method_calls_with_step_over' - - def run(self): - self.start_socket() - self.write_add_breakpoint(26, None) - - self.write_make_initial_run() - thread_id, frame_id, line = self.wait_for_breakpoint_hit('111', True) - - self.write_step_over(thread_id) - thread_id, frame_id, line = self.wait_for_breakpoint_hit('108', True) - - self.write_run_thread(thread_id) - self.finished_ok = True - -class WriterThreadPerformance4(PerformanceWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_performance_1.py') - BENCHMARK_NAME = 'method_calls_with_exception_breakpoint' - - def run(self): - self.start_socket() - self.write_add_exception_breakpoint('ValueError') - - self.write_make_initial_run() - self.finished_ok = True - -class WriterThreadPerformance5(PerformanceWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_performance_2.py') - BENCHMARK_NAME = 'global_scope_1_with_breakpoint' - - def run(self): - self.start_socket() - self.write_add_breakpoint(23, None) - - self.write_make_initial_run() - self.finished_ok = True - -class WriterThreadPerformance6(PerformanceWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_performance_3.py') - BENCHMARK_NAME = 'global_scope_2_with_breakpoint' - - def run(self): - self.start_socket() - self.write_add_breakpoint(17, None) - - self.write_make_initial_run() - self.finished_ok = True - - -class CheckDebuggerPerformance(debugger_unittest.DebuggerRunner): - - def get_command_line(self): - return [sys.executable] - - def _get_time_from_result(self, result): - stdout = ''.join(result['stdout']) - match = re.search(r'TotalTime>>((\d|\.)+)<<', stdout) - time_taken = match.group(1) - return float(time_taken) - - def obtain_results(self, writer_thread_class): - runs = 5 - all_times = [] - for _ in range(runs): - all_times.append(self._get_time_from_result(self.check_case(writer_thread_class))) - print('partial for: %s: %.3fs' % (writer_thread_class.BENCHMARK_NAME, all_times[-1])) - all_times.remove(min(all_times)) - all_times.remove(max(all_times)) - time_when_debugged = sum(all_times) / float(len(all_times)) - - args = self.get_command_line() - args.append(writer_thread_class.TEST_FILE) - # regular_time = self._get_time_from_result(self.run_process(args, writer_thread=None)) - # simple_trace_time = self._get_time_from_result(self.run_process(args+['--regular-trace'], writer_thread=None)) - - if 'SPEEDTIN_AUTHORIZATION_KEY' in os.environ: - - SPEEDTIN_AUTHORIZATION_KEY = os.environ['SPEEDTIN_AUTHORIZATION_KEY'] - - # sys.path.append(r'X:\speedtin\pyspeedtin') - import pyspeedtin # If the authorization key is there, pyspeedtin must be available - import pydevd - pydevd_cython_project_id, pydevd_pure_python_project_id = 6, 7 - if writer_thread_class.CHECK == CHECK_BASELINE: - project_ids = (pydevd_cython_project_id, pydevd_pure_python_project_id) - elif writer_thread_class.CHECK == CHECK_REGULAR: - project_ids = (pydevd_pure_python_project_id,) - elif writer_thread_class.CHECK == CHECK_CYTHON: - project_ids = (pydevd_cython_project_id,) - else: - raise AssertionError('Wrong check: %s' % (writer_thread_class.CHECK)) - for project_id in project_ids: - api = pyspeedtin.PySpeedTinApi(authorization_key=SPEEDTIN_AUTHORIZATION_KEY, project_id=project_id) - - benchmark_name = writer_thread_class.BENCHMARK_NAME - - if writer_thread_class.CHECK == CHECK_BASELINE: - version = '0.0.1_baseline' - return # No longer commit the baseline (it's immutable right now). - else: - version=pydevd.__version__, - - commit_id, branch, commit_date = api.git_commit_id_branch_and_date_from_path(pydevd.__file__) - api.add_benchmark(benchmark_name) - api.add_measurement( - benchmark_name, - value=time_when_debugged, - version=version, - released=False, - branch=branch, - commit_id=commit_id, - commit_date=commit_date, - ) - api.commit() - - return '%s: %.3fs ' % (writer_thread_class.BENCHMARK_NAME, time_when_debugged) - - - def check_performance1(self): - return self.obtain_results(WriterThreadPerformance1) - - def check_performance2(self): - return self.obtain_results(WriterThreadPerformance2) - - def check_performance3(self): - return self.obtain_results(WriterThreadPerformance3) - - def check_performance4(self): - return self.obtain_results(WriterThreadPerformance4) - - def check_performance5(self): - return self.obtain_results(WriterThreadPerformance5) - - def check_performance6(self): - return self.obtain_results(WriterThreadPerformance6) - -if __name__ == '__main__': - debugger_unittest.SHOW_WRITES_AND_READS = False - debugger_unittest.SHOW_OTHER_DEBUG_INFO = False - debugger_unittest.SHOW_STDOUT = False - - import time - start_time = time.time() - - msgs = [] - for check in ( - # CHECK_BASELINE, -- Checks against the version checked out at X:\PyDev.Debugger.baseline. - CHECK_REGULAR, - CHECK_CYTHON - ): - PerformanceWriterThread.CHECK = check - msgs.append('Checking: %s' % (check,)) - check_debugger_performance = CheckDebuggerPerformance() - msgs.append(check_debugger_performance.check_performance1()) - msgs.append(check_debugger_performance.check_performance2()) - msgs.append(check_debugger_performance.check_performance3()) - msgs.append(check_debugger_performance.check_performance4()) - msgs.append(check_debugger_performance.check_performance5()) - msgs.append(check_debugger_performance.check_performance6()) - - for msg in msgs: - print(msg) - - print('TotalTime for profile: %.2fs' % (time.time()-start_time,)) diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_additional_thread_info.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_additional_thread_info.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_additional_thread_info.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_additional_thread_info.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -import sys -import os -from _pydev_bundle import pydev_monkey -sys.path.insert(0, os.path.split(os.path.split(__file__)[0])[0]) - -from _pydevd_bundle.pydevd_constants import Null -import unittest - -try: - import thread -except: - import _thread as thread # @UnresolvedImport - -try: - xrange -except: - xrange = range - -#======================================================================================================================= -# TestCase -#======================================================================================================================= -class TestCase(unittest.TestCase): - - def test_start_new_thread(self): - pydev_monkey.patch_thread_modules() - try: - found = {} - def function(a, b, *args, **kwargs): - found['a'] = a - found['b'] = b - found['args'] = args - found['kwargs'] = kwargs - thread.start_new_thread(function, (1,2,3,4), {'d':1, 'e':2}) - import time - for _i in xrange(20): - if len(found) == 4: - break - time.sleep(.1) - else: - raise AssertionError('Could not get to condition before 2 seconds') - - self.assertEqual({'a': 1, 'b': 2, 'args': (3, 4), 'kwargs': {'e': 2, 'd': 1}}, found) - finally: - pydev_monkey.undo_patch_thread_modules() - - - def test_start_new_thread2(self): - pydev_monkey.patch_thread_modules() - try: - found = {} - - class F(object): - start_new_thread = thread.start_new_thread - - def start_it(self): - try: - self.start_new_thread(self.function, (1,2,3,4), {'d':1, 'e':2}) - except: - import traceback;traceback.print_exc() - - def function(self, a, b, *args, **kwargs): - found['a'] = a - found['b'] = b - found['args'] = args - found['kwargs'] = kwargs - - f = F() - f.start_it() - import time - for _i in xrange(20): - if len(found) == 4: - break - time.sleep(.1) - else: - raise AssertionError('Could not get to condition before 2 seconds') - - self.assertEqual({'a': 1, 'b': 2, 'args': (3, 4), 'kwargs': {'e': 2, 'd': 1}}, found) - finally: - pydev_monkey.undo_patch_thread_modules() - - -#======================================================================================================================= -# main -#======================================================================================================================= -if __name__ == '__main__': - unittest.main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_bytecode_modification.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_bytecode_modification.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_bytecode_modification.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_bytecode_modification.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,553 +0,0 @@ -import dis -import sys -import unittest -from io import StringIO - -from _pydevd_frame_eval.pydevd_modify_bytecode import insert_code -from opcode import EXTENDED_ARG - -TRACE_MESSAGE = "Trace called" - -def tracing(): - print(TRACE_MESSAGE) - - -def call_tracing(): - return tracing() - - -def bar(a, b): - return a + b - -IS_PY36 = sys.version_info[0] == 3 and sys.version_info[1] == 6 - - -@unittest.skipIf(not IS_PY36, reason='Test requires Python 3.6') -class TestInsertCode(unittest.TestCase): - lines_separator = "---Line tested---" - - def check_insert_every_line(self, func_to_modify, func_to_insert, number_of_lines): - first_line = func_to_modify.__code__.co_firstlineno + 1 - last_line = first_line + number_of_lines - for i in range(first_line, last_line): - self.check_insert_to_line_with_exec(func_to_modify, func_to_insert, i) - print(self.lines_separator) - - def check_insert_to_line_with_exec(self, func_to_modify, func_to_insert, line_number): - code_orig = func_to_modify.__code__ - code_to_insert = func_to_insert.__code__ - success, result = insert_code(code_orig, code_to_insert, line_number) - exec(result) - output = sys.stdout.getvalue().strip().split(self.lines_separator)[-1] - self.assertTrue(TRACE_MESSAGE in output) - - def check_insert_to_line_by_symbols(self, func_to_modify, func_to_insert, line_number, code_for_check): - code_orig = func_to_modify.__code__ - code_to_insert = func_to_insert.__code__ - success, result = insert_code(code_orig, code_to_insert, line_number) - self.compare_bytes_sequence(list(result.co_code), list(code_for_check.co_code), len(code_to_insert.co_code)) - - def compare_bytes_sequence(self, code1, code2, inserted_code_size): - """ - Compare code after modification and the real code - Since we add POP_JUMP_IF_TRUE instruction, we can't compare modified code and the real code. That's why we - allow some inaccuracies while code comparison - :param code1: result code after modification - :param code2: a real code for checking - :param inserted_code_size: size of inserted code - """ - seq1 = [(offset, op, arg) for offset, op, arg in dis._unpack_opargs(code1)] - seq2 = [(offset, op, arg) for offset, op, arg in dis._unpack_opargs(code2)] - self.assertTrue(len(seq1) == len(seq2), "Bytes sequences have different lengths") - for i in range(len(seq1)): - of, op1, arg1 = seq1[i] - _, op2, arg2 = seq2[i] - if op1 != op2: - if op1 == 115 and op2 == 1: - # it's ok, because we added POP_JUMP_IF_TRUE manually, but it's POP_TOP in the real code - # inserted code - 2 (removed return instruction) - real code inserted - # Jump should be done to the beginning of inserted fragment - self.assertEqual(arg1, of - (inserted_code_size - 2)) - continue - elif op1 == EXTENDED_ARG and op2 == 12: - # we added a real UNARY_NOT to balance EXTENDED_ARG added by new jump instruction - # i.e. inserted code size was increased as well - inserted_code_size += 2 - continue - - self.assertEqual(op1, op2, "Different operators at offset {}".format(of)) - if arg1 != arg2: - if op1 in (100, 101, 106, 116): - # Sometimes indexes of variable names and consts may be different, when we insert them, it's ok - continue - else: - self.assertEquals(arg1, arg2, "Different arguments at offset {}".format(of)) - - def test_assignment(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - def original(): - a = 1 - b = 2 - c = 3 - - self.check_insert_every_line(original, tracing, 3) - - finally: - sys.stdout = self.original_stdout - - def test_for_loop(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - def original(): - n = 3 - sum = 0 - for i in range(n): - sum += i - return sum - - self.check_insert_every_line(original, tracing, 5) - - finally: - sys.stdout = self.original_stdout - - def test_if(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - def original(): - if True: - a = 1 - else: - a = 0 - print(a) - - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 2) - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 5) - - finally: - sys.stdout = self.original_stdout - - def test_else(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - def original(): - if False: - a = 1 - else: - a = 0 - print(a) - - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 4) - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 5) - - finally: - sys.stdout = self.original_stdout - - def test_for_else(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - def original(): - sum = 0 - for i in range(3): - sum += i - else: - print(sum) - - def check_line_1(): - tracing() - sum = 0 - for i in range(3): - sum += i - else: - print(sum) - - def check_line_3(): - sum = 0 - for i in range(3): - tracing() - sum += i - else: - print(sum) - - def check_line_5(): - sum = 0 - for i in range(3): - sum += i - else: - tracing() - print(sum) - - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 1) - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 3) - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 5) - - sys.stdout = self.original_stdout - self.check_insert_to_line_by_symbols(original, call_tracing, original.__code__.co_firstlineno + 1, - check_line_1.__code__) - self.check_insert_to_line_by_symbols(original, call_tracing, original.__code__.co_firstlineno + 3, - check_line_3.__code__) - self.check_insert_to_line_by_symbols(original, call_tracing, original.__code__.co_firstlineno + 5, - check_line_5.__code__) - - finally: - sys.stdout = self.original_stdout - - def test_elif(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - def original(): - a = 5 - b = 0 - if a < 0: - print("a < 0") - elif a < 3: - print("a < 3") - else: - print("a >= 3") - b = a - return b - - def check_line_1(): - tracing() - a = 5 - b = 0 - if a < 0: - print("a < 0") - elif a < 3: - print("a < 3") - else: - print("a >= 3") - b = a - return b - - def check_line_8(): - a = 5 - b = 0 - if a < 0: - print("a < 0") - elif a < 3: - print("a < 3") - else: - tracing() - print("a >= 3") - b = a - return b - - def check_line_9(): - a = 5 - b = 0 - if a < 0: - print("a < 0") - elif a < 3: - print("a < 3") - else: - print("a >= 3") - tracing() - b = a - return b - - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 1) - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 2) - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 8) - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 9) - - self.check_insert_to_line_by_symbols(original, call_tracing, original.__code__.co_firstlineno + 1, - check_line_1.__code__) - self.check_insert_to_line_by_symbols(original, call_tracing, original.__code__.co_firstlineno + 8, - check_line_8.__code__) - self.check_insert_to_line_by_symbols(original, call_tracing, original.__code__.co_firstlineno + 9, - check_line_9.__code__) - - finally: - sys.stdout = self.original_stdout - - def test_call_other_function(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - def original(): - a = 1 - b = 3 - c = bar(a, b) - return c - - def check_line_3(): - a = 1 - b = 3 - tracing() - c = bar(a, b) - return c - - def check_line_4(): - a = 1 - b = 3 - c = bar(a, b) - tracing() - return c - - self.check_insert_every_line(original, tracing, 4) - sys.stdout = self.original_stdout - - self.check_insert_to_line_by_symbols(original, call_tracing, original.__code__.co_firstlineno + 3, - check_line_3.__code__) - self.check_insert_to_line_by_symbols(original, call_tracing, original.__code__.co_firstlineno + 4, - check_line_4.__code__) - - finally: - sys.stdout = self.original_stdout - - def test_class_method(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - class A(object): - @staticmethod - def foo(): - print("i'm in foo") - - @staticmethod - def check_line_2(): - tracing() - print("i'm in foo") - - original = A.foo - self.check_insert_to_line_with_exec(original, tracing, original.__code__.co_firstlineno + 2) - - self.check_insert_to_line_by_symbols(original, call_tracing, original.__code__.co_firstlineno + 2, - A.check_line_2.__code__) - - finally: - sys.stdout = self.original_stdout - - def test_offset_overflow(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - def foo(): - a = 1 - b = 2 # breakpoint - c = 3 - a1 = 1 if a > 1 else 2 - a2 = 1 if a > 1 else 2 - a3 = 1 if a > 1 else 2 - a4 = 1 if a > 1 else 2 - a5 = 1 if a > 1 else 2 - a6 = 1 if a > 1 else 2 - a7 = 1 if a > 1 else 2 - a8 = 1 if a > 1 else 2 - a9 = 1 if a > 1 else 2 - a10 = 1 if a > 1 else 2 - a11 = 1 if a > 1 else 2 - a12 = 1 if a > 1 else 2 - a13 = 1 if a > 1 else 2 - - for i in range(1): - if a > 0: - print("111") - # a = 1 - else: - print("222") - return b - - def check_line_2(): - a = 1 - tracing() - b = 2 - c = 3 - a1 = 1 if a > 1 else 2 - a2 = 1 if a > 1 else 2 - a3 = 1 if a > 1 else 2 - a4 = 1 if a > 1 else 2 - a5 = 1 if a > 1 else 2 - a6 = 1 if a > 1 else 2 - a7 = 1 if a > 1 else 2 - a8 = 1 if a > 1 else 2 - a9 = 1 if a > 1 else 2 - a10 = 1 if a > 1 else 2 - a11 = 1 if a > 1 else 2 - a12 = 1 if a > 1 else 2 - a13 = 1 if a > 1 else 2 - - for i in range(1): - if a > 0: - print("111") - # a = 1 - else: - print("222") - return b - - self.check_insert_to_line_with_exec(foo, tracing, foo.__code__.co_firstlineno + 2) - - self.check_insert_to_line_by_symbols(foo, call_tracing, foo.__code__.co_firstlineno + 2, - check_line_2.__code__) - - finally: - sys.stdout = self.original_stdout - - def test_long_lines(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - def foo(): - a = 1 - b = 1 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 - c = 1 if b > 1 else 2 if b > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 - d = 1 if c > 1 else 2 if c > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 - e = d + 1 - return e - - def check_line_2(): - a = 1 - tracing() - b = 1 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 - c = 1 if b > 1 else 2 if b > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 - d = 1 if c > 1 else 2 if c > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 - e = d + 1 - return e - - self.check_insert_to_line_with_exec(foo, tracing, foo.__code__.co_firstlineno + 2) - sys.stdout = self.original_stdout - - self.check_insert_to_line_by_symbols(foo, call_tracing, foo.__code__.co_firstlineno + 2, - check_line_2.__code__) - - - finally: - sys.stdout = self.original_stdout - - def test_many_names(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - from tests_pydevd_python._bytecode_many_names_example import foo - self.check_insert_to_line_with_exec(foo, tracing, foo.__code__.co_firstlineno + 2) - - finally: - sys.stdout = self.original_stdout - - def test_extended_arg_overflow(self): - - from tests_pydevd_python._bytecode_overflow_example import Dummy, DummyTracing - self.check_insert_to_line_by_symbols(Dummy.fun, call_tracing, Dummy.fun.__code__.co_firstlineno + 3, - DummyTracing.fun.__code__) - - def test_double_extended_arg(self): - self.original_stdout = sys.stdout - sys.stdout = StringIO() - - try: - def foo(): - a = 1 - b = 2 - if b > 0: - d = a + b - d += 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - a = a + 1 - return a - - def foo_check(): - a = 1 - b = 2 - tracing() - if b > 0: - d = a + b - d += 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - a = a + 1 - return a - - def foo_check_2(): - a = 1 - b = 2 - if b > 0: - d = a + b - d += 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - not tracing() # add 'not' to balance EXTENDED_ARG when jumping - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - b = b - 1 if a > 0 else b + 1 - a = a + 1 - return a - - self.check_insert_to_line_with_exec(foo, tracing, foo.__code__.co_firstlineno + 2) - sys.stdout = self.original_stdout - - self.check_insert_to_line_by_symbols(foo, call_tracing, foo.__code__.co_firstlineno + 3, - foo_check.__code__) - - self.check_insert_to_line_by_symbols(foo, call_tracing, foo.__code__.co_firstlineno + 21, - foo_check_2.__code__) - - - finally: - sys.stdout = self.original_stdout diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_debugger.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_debugger.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_debugger.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_debugger.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,1489 +0,0 @@ -''' - The idea is that we record the commands sent to the debugger and reproduce them from this script - (so, this works as the client, which spawns the debugger as a separate process and communicates - to it as if it was run from the outside) - - Note that it's a python script but it'll spawn a process to run as jython, ironpython and as python. -''' -import os -import platform -import sys -import threading -import time -import unittest - -from tests_pydevd_python import debugger_unittest -from tests_pydevd_python.debugger_unittest import get_free_port - - -CMD_SET_PROPERTY_TRACE, CMD_EVALUATE_CONSOLE_EXPRESSION, CMD_RUN_CUSTOM_OPERATION, CMD_ENABLE_DONT_TRACE = 133, 134, 135, 141 - -IS_CPYTHON = platform.python_implementation() == 'CPython' -IS_IRONPYTHON = platform.python_implementation() == 'IronPython' -IS_JYTHON = platform.python_implementation() == 'Jython' - -IS_NUMPY = True -try: - import numpy -except ImportError: - IS_NUMPY = False - -try: - xrange -except: - xrange = range - - -TEST_DJANGO = False -if sys.version_info[:2] == (2, 7): - # Only test on python 2.7 for now - try: - import django - TEST_DJANGO = True - except: - pass - -IS_PY2 = False -if sys.version_info[0] == 2: - IS_PY2 = True - -if IS_PY2: - builtin_qualifier = "__builtin__" -else: - builtin_qualifier = "builtins" - -IS_PY36 = False -if sys.version_info[0] == 3 and sys.version_info[1] == 6: - IS_PY36 = True - -TEST_CYTHON = os.getenv('PYDEVD_USE_CYTHON', None) == 'YES' -TEST_JYTHON = os.getenv('TEST_JYTHON', None) == 'YES' - -#======================================================================================================================= -# WriterThreadCaseSetNextStatement -#====================================================================================================================== -class WriterThreadCaseSetNextStatement(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case_set_next_statement.py') - - def run(self): - self.start_socket() - breakpoint_id = self.write_add_breakpoint(6, None) - self.write_make_initial_run() - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('111', True) - - assert line == 6, 'Expected return to be in line 6, was: %s' % line - - self.write_evaluate_expression('%s\t%s\t%s' % (thread_id, frame_id, 'LOCAL'), 'a') - self.wait_for_evaluation('
  • v1:v1
  • v2:v2
  • ' % (contents,)) - - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCaseDjango2 -#====================================================================================================================== -class WriterThreadCaseDjango2(AbstractWriterThreadCaseDjango): - - def run(self): - self.start_socket() - self.write_add_breakpoint_django(4, None, 'name.html') - self.write_make_initial_run() - - t = self.create_request_thread('my_app/name') - time.sleep(5) # Give django some time to get to startup before requesting the page - t.start() - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('111', True) - assert line == 4, 'Expected return to be in line 4, was: %s' % line - - self.write_get_frame(thread_id, frame_id) - self.wait_for_var('%0A
    '.format(builtin_qualifier,)) - self.write_run_thread(thread_id) - - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCase17 - [Test Case]: dont trace -#====================================================================================================================== -class WriterThreadCase17(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case17.py') - - def run(self): - self.start_socket() - self.write_enable_dont_trace(True) - self.write_add_breakpoint(27, 'main') - self.write_add_breakpoint(29, 'main') - self.write_add_breakpoint(31, 'main') - self.write_add_breakpoint(33, 'main') - self.write_make_initial_run() - - for i in range(4): - thread_id, frame_id, line = self.wait_for_breakpoint_hit('111', True) - - self.write_step_in(thread_id) - thread_id, frame_id, line = self.wait_for_breakpoint_hit('107', True) - # Should Skip step into properties setter - assert line == 2, 'Expected return to be in line 2, was: %s' % line - self.write_run_thread(thread_id) - - - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCase17a - [Test Case]: dont trace return -#====================================================================================================================== -class WriterThreadCase17a(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case17a.py') - - def run(self): - self.start_socket() - self.write_enable_dont_trace(True) - self.write_add_breakpoint(2, 'm1') - self.write_make_initial_run() - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('111', True) - assert line == 2, 'Expected return to be in line 2, was: %s' % line - - self.write_step_in(thread_id) - thread_id, frame_id, line, name = self.wait_for_breakpoint_hit('107', get_line=True, get_name=True) - - # Should Skip step into properties setter - assert name == 'm3' - assert line == 10, 'Expected return to be in line 10, was: %s' % line - self.write_run_thread(thread_id) - - - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCase16 - [Test Case]: numpy.ndarray resolver -#====================================================================================================================== -class WriterThreadCase16(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case16.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(9, 'main') - self.write_make_initial_run() - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('111', True) - - # In this test we check that the three arrays of different shapes, sizes and types - # are all resolved properly as ndarrays. - - # First pass check is that we have all three expected variables defined - self.write_get_frame(thread_id, frame_id) - self.wait_for_multiple_vars(( - '', - '', - '', - )) - - # For each variable, check each of the resolved (meta data) attributes... - self.write_get_variable(thread_id, frame_id, 'smallarray') - self.wait_for_multiple_vars(( - ''.format(builtin_qualifier), - ''.format(builtin_qualifier), - ''.format(builtin_qualifier), - ''.format(builtin_qualifier), - ], - [ - ''.format(builtin_qualifier), - ''.format(builtin_qualifier), - ''.format(builtin_qualifier), - ''.format(builtin_qualifier), - ], - 'False', '%27Black%27']) - assert 7 == self._sequence, 'Expected 9. Had: %s' % self._sequence - - # Change some variable - self.write_debug_console_expression("%s\t%s\tEVALUATE\tcarObj.color='Red'" % (thread_id, frame_id)) - self.write_debug_console_expression("%s\t%s\tEVALUATE\tcarObj.color" % (thread_id, frame_id)) - self.wait_for_var(['False', '%27Red%27']) - assert 11 == self._sequence, 'Expected 13. Had: %s' % self._sequence - - # Iterate some loop - self.write_debug_console_expression("%s\t%s\tEVALUATE\tfor i in range(3):" % (thread_id, frame_id)) - self.wait_for_var(['True']) - self.write_debug_console_expression("%s\t%s\tEVALUATE\t print(i)" % (thread_id, frame_id)) - self.wait_for_var(['True']) - self.write_debug_console_expression("%s\t%s\tEVALUATE\t" % (thread_id, frame_id)) - self.wait_for_var( - [ - 'False' ] - ) - assert 17 == self._sequence, 'Expected 19. Had: %s' % self._sequence - - self.write_run_thread(thread_id) - self.finished_ok = True - - -#======================================================================================================================= -# WriterThreadCase13 -#====================================================================================================================== -class WriterThreadCase13(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case13.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(35, 'main') - self.write("%s\t%s\t%s" % (CMD_SET_PROPERTY_TRACE, self.next_seq(), "true;false;false;true")) - self.write_make_initial_run() - thread_id, frame_id, line = self.wait_for_breakpoint_hit('111', True) - - self.write_get_frame(thread_id, frame_id) - - self.write_step_in(thread_id) - thread_id, frame_id, line = self.wait_for_breakpoint_hit('107', True) - # Should go inside setter method - assert line == 25, 'Expected return to be in line 25, was: %s' % line - - self.write_step_in(thread_id) - thread_id, frame_id, line = self.wait_for_breakpoint_hit('107', True) - - self.write_step_in(thread_id) - thread_id, frame_id, line = self.wait_for_breakpoint_hit('107', True) - # Should go inside getter method - assert line == 21, 'Expected return to be in line 21, was: %s' % line - - self.write_step_in(thread_id) - thread_id, frame_id, line = self.wait_for_breakpoint_hit('107', True) - - # Disable property tracing - self.write("%s\t%s\t%s" % (CMD_SET_PROPERTY_TRACE, self.next_seq(), "true;true;true;true")) - self.write_step_in(thread_id) - thread_id, frame_id, line = self.wait_for_breakpoint_hit('107', True) - # Should Skip step into properties setter - assert line == 39, 'Expected return to be in line 39, was: %s' % line - - # Enable property tracing - self.write("%s\t%s\t%s" % (CMD_SET_PROPERTY_TRACE, self.next_seq(), "true;false;false;true")) - self.write_step_in(thread_id) - thread_id, frame_id, line = self.wait_for_breakpoint_hit('107', True) - # Should go inside getter method - assert line == 8, 'Expected return to be in line 8, was: %s' % line - - self.write_run_thread(thread_id) - - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCase12 -#====================================================================================================================== -class WriterThreadCase12(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case10.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(2, '') # Should not be hit: setting empty function (not None) should only hit global. - self.write_add_breakpoint(6, 'Method1a') - self.write_add_breakpoint(11, 'Method2') - self.write_make_initial_run() - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('111', True) - - assert line == 11, 'Expected return to be in line 11, was: %s' % line - - self.write_step_return(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('111', True) # not a return (it stopped in the other breakpoint) - - assert line == 6, 'Expected return to be in line 6, was: %s' % line - - self.write_run_thread(thread_id) - - assert 13 == self._sequence, 'Expected 13. Had: %s' % self._sequence - - self.finished_ok = True - - - -#======================================================================================================================= -# WriterThreadCase11 -#====================================================================================================================== -class WriterThreadCase11(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case10.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(2, 'Method1') - self.write_make_initial_run() - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('111', True) - - assert line == 2, 'Expected return to be in line 2, was: %s' % line - - self.write_step_over(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('108', True) - - assert line == 3, 'Expected return to be in line 3, was: %s' % line - - self.write_step_over(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('108', True) - - assert line == 11, 'Expected return to be in line 11, was: %s' % line - - self.write_step_over(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('108', True) - - assert line == 12, 'Expected return to be in line 12, was: %s' % line - - self.write_run_thread(thread_id) - - assert 13 == self._sequence, 'Expected 13. Had: %s' % self._sequence - - self.finished_ok = True - - - -#======================================================================================================================= -# WriterThreadCase10 -#====================================================================================================================== -class WriterThreadCase10(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case10.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(2, 'None') # None or Method should make hit. - self.write_make_initial_run() - - thread_id, frame_id = self.wait_for_breakpoint_hit('111') - - self.write_step_return(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('109', True) - - assert line == 11, 'Expected return to be in line 11, was: %s' % line - - self.write_step_over(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('108', True) - - assert line == 12, 'Expected return to be in line 12, was: %s' % line - - self.write_run_thread(thread_id) - - assert 11 == self._sequence, 'Expected 11. Had: %s' % self._sequence - - self.finished_ok = True - - - -#======================================================================================================================= -# WriterThreadCase9 -#====================================================================================================================== -class WriterThreadCase9(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case89.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(10, 'Method3') - self.write_make_initial_run() - - thread_id, frame_id = self.wait_for_breakpoint_hit('111') - - self.write_step_over(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('108', True) - - assert line == 11, 'Expected return to be in line 11, was: %s' % line - - self.write_step_over(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('108', True) - - assert line == 12, 'Expected return to be in line 12, was: %s' % line - - self.write_run_thread(thread_id) - - assert 11 == self._sequence, 'Expected 11. Had: %s' % self._sequence - - self.finished_ok = True - - -#======================================================================================================================= -# WriterThreadCase8 -#====================================================================================================================== -class WriterThreadCase8(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case89.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(10, 'Method3') - self.write_make_initial_run() - - thread_id, frame_id = self.wait_for_breakpoint_hit('111') - - self.write_step_return(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('109', True) - - assert line == 15, 'Expected return to be in line 15, was: %s' % line - - self.write_run_thread(thread_id) - - assert 9 == self._sequence, 'Expected 9. Had: %s' % self._sequence - - self.finished_ok = True - - - - -#======================================================================================================================= -# WriterThreadCase7 -#====================================================================================================================== -class WriterThreadCase7(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case7.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(2, 'Call') - self.write_make_initial_run() - - thread_id, frame_id = self.wait_for_breakpoint_hit('111') - - self.write_get_frame(thread_id, frame_id) - - self.wait_for_vars('') # no vars at this point - - self.write_step_over(thread_id) - - self.wait_for_breakpoint_hit('108') - - self.write_get_frame(thread_id, frame_id) - - self.wait_for_vars('%0A'.format(builtin_qualifier)) - - self.write_step_over(thread_id) - - self.wait_for_breakpoint_hit('108') - - - self.write_get_frame(thread_id, frame_id) - - self.wait_for_vars('%0A%0A'.format(builtin_qualifier)) - - self.write_run_thread(thread_id) - - assert 17 == self._sequence, 'Expected 17. Had: %s' % self._sequence - - self.finished_ok = True - - - -#======================================================================================================================= -# WriterThreadCase6 -#======================================================================================================================= -class WriterThreadCase6(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case56.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(2, 'Call2') - self.write_make_initial_run() - - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.write_get_frame(thread_id, frame_id) - - self.write_step_return(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('109', True) - - assert line == 8, 'Expecting it to go to line 8. Went to: %s' % line - - self.write_step_in(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('107', True) - - # goes to line 4 in jython (function declaration line) - assert line in (4, 5), 'Expecting it to go to line 4 or 5. Went to: %s' % line - - self.write_run_thread(thread_id) - - assert 13 == self._sequence, 'Expected 15. Had: %s' % self._sequence - - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCase5 -#======================================================================================================================= -class WriterThreadCase5(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case56.py') - - def run(self): - self.start_socket() - breakpoint_id = self.write_add_breakpoint(2, 'Call2') - self.write_make_initial_run() - - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.write_get_frame(thread_id, frame_id) - - self.write_remove_breakpoint(breakpoint_id) - - self.write_step_return(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('109', True) - - assert line == 8, 'Expecting it to go to line 8. Went to: %s' % line - - self.write_step_in(thread_id) - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('107', True) - - # goes to line 4 in jython (function declaration line) - assert line in (4, 5), 'Expecting it to go to line 4 or 5. Went to: %s' % line - - self.write_run_thread(thread_id) - - assert 15 == self._sequence, 'Expected 15. Had: %s' % self._sequence - - self.finished_ok = True - - -#======================================================================================================================= -# WriterThreadCase4 -#======================================================================================================================= -class WriterThreadCase4(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case4.py') - - def run(self): - self.start_socket() - self.write_make_initial_run() - - thread_id = self.wait_for_new_thread() - - self.write_suspend_thread(thread_id) - - time.sleep(4) # wait for time enough for the test to finish if it wasn't suspended - - self.write_run_thread(thread_id) - - self.finished_ok = True - - -#======================================================================================================================= -# WriterThreadCase3 -#======================================================================================================================= -class WriterThreadCase3(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case3.py') - - def run(self): - self.start_socket() - self.write_make_initial_run() - time.sleep(.5) - breakpoint_id = self.write_add_breakpoint(4, '') - self.write_add_breakpoint(5, 'FuncNotAvailable') # Check that it doesn't get hit in the global when a function is available - - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.write_get_frame(thread_id, frame_id) - - self.write_run_thread(thread_id) - - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.write_get_frame(thread_id, frame_id) - - self.write_remove_breakpoint(breakpoint_id) - - self.write_run_thread(thread_id) - - assert 17 == self._sequence, 'Expected 17. Had: %s' % self._sequence - - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCase2 -#======================================================================================================================= -class WriterThreadCase2(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case2.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(3, 'Call4') # seq = 3 - self.write_make_initial_run() - - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.write_get_frame(thread_id, frame_id) - - self.write_add_breakpoint(14, 'Call2') - - self.write_run_thread(thread_id) - - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.write_get_frame(thread_id, frame_id) - - self.write_run_thread(thread_id) - - self.log.append('Checking sequence. Found: %s' % (self._sequence)) - assert 15 == self._sequence, 'Expected 15. Had: %s' % self._sequence - - self.log.append('Marking finished ok.') - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCaseQThread1 -#======================================================================================================================= -class WriterThreadCaseQThread1(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case_qthread1.py') - - def run(self): - self.start_socket() - breakpoint_id = self.write_add_breakpoint(19, 'run') - self.write_make_initial_run() - - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.write_remove_breakpoint(breakpoint_id) - self.write_run_thread(thread_id) - - self.log.append('Checking sequence. Found: %s' % (self._sequence)) - assert 9 == self._sequence, 'Expected 9. Had: %s' % self._sequence - - self.log.append('Marking finished ok.') - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCaseQThread2 -#======================================================================================================================= -class WriterThreadCaseQThread2(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case_qthread2.py') - - def run(self): - self.start_socket() - breakpoint_id = self.write_add_breakpoint(24, 'long_running') - self.write_make_initial_run() - - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.write_remove_breakpoint(breakpoint_id) - self.write_run_thread(thread_id) - - self.log.append('Checking sequence. Found: %s' % (self._sequence)) - assert 9 == self._sequence, 'Expected 9. Had: %s' % self._sequence - - self.log.append('Marking finished ok.') - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCaseQThread3 -#======================================================================================================================= -class WriterThreadCaseQThread3(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case_qthread3.py') - - def run(self): - self.start_socket() - breakpoint_id = self.write_add_breakpoint(22, 'run') - self.write_make_initial_run() - - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.write_remove_breakpoint(breakpoint_id) - self.write_run_thread(thread_id) - - self.log.append('Checking sequence. Found: %s' % (self._sequence)) - assert 9 == self._sequence, 'Expected 9. Had: %s' % self._sequence - - self.log.append('Marking finished ok.') - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCaseQThread4 -#======================================================================================================================= -class WriterThreadCaseQThread4(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case_qthread4.py') - - def run(self): - self.start_socket() - breakpoint_id = self.write_add_breakpoint(28, 'on_start') # breakpoint on print('On start called2'). - self.write_make_initial_run() - - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.write_remove_breakpoint(breakpoint_id) - self.write_run_thread(thread_id) - - self.log.append('Checking sequence. Found: %s' % (self._sequence)) - assert 9 == self._sequence, 'Expected 9. Had: %s' % self._sequence - - self.log.append('Marking finished ok.') - self.finished_ok = True - - def additional_output_checks(self, stdout, stderr): - if 'On start called' not in stdout: - raise AssertionError('Expected "On start called" to be in stdout:\n%s' % (stdout,)) - if 'Done sleeping' not in stdout: - raise AssertionError('Expected "Done sleeping" to be in stdout:\n%s' % (stdout,)) - if 'native Qt signal is not callable' in stderr: - raise AssertionError('Did not expect "native Qt signal is not callable" to be in stderr:\n%s' % (stderr,)) - -#======================================================================================================================= -# WriterThreadCase1 -#======================================================================================================================= -class WriterThreadCase1(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case1.py') - - def run(self): - self.start_socket() - - self.log.append('writing add breakpoint') - self.write_add_breakpoint(6, 'set_up') - - self.log.append('making initial run') - self.write_make_initial_run() - - self.log.append('waiting for breakpoint hit') - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.log.append('get frame') - self.write_get_frame(thread_id, frame_id) - - self.log.append('step over') - self.write_step_over(thread_id) - - self.log.append('get frame') - self.write_get_frame(thread_id, frame_id) - - self.log.append('run thread') - self.write_run_thread(thread_id) - - self.log.append('asserting') - try: - assert 13 == self._sequence, 'Expected 13. Had: %s' % self._sequence - except: - self.log.append('assert failed!') - raise - self.log.append('asserted') - - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCaseMSwitch -#======================================================================================================================= -class WriterThreadCaseMSwitch(debugger_unittest.AbstractWriterThread): - - TEST_FILE = 'tests_pydevd_python._debugger_case_m_switch' - IS_MODULE = True - - def get_environ(self): - env = os.environ.copy() - curr_pythonpath = env.get('PYTHONPATH', '') - - root_dirname = os.path.dirname(os.path.dirname(__file__)) - - curr_pythonpath += root_dirname + os.pathsep - env['PYTHONPATH'] = curr_pythonpath - return env - - def get_main_filename(self): - return debugger_unittest._get_debugger_test_file('_debugger_case_m_switch.py') - - def run(self): - self.start_socket() - - self.log.append('writing add breakpoint') - breakpoint_id = self.write_add_breakpoint(1, None) - - self.log.append('making initial run') - self.write_make_initial_run() - - self.log.append('waiting for breakpoint hit') - thread_id, frame_id = self.wait_for_breakpoint_hit() - - self.write_remove_breakpoint(breakpoint_id) - - self.log.append('run thread') - self.write_run_thread(thread_id) - - self.log.append('asserting') - try: - assert 9 == self._sequence, 'Expected 9. Had: %s' % self._sequence - except: - self.log.append('assert failed!') - raise - self.log.append('asserted') - - self.finished_ok = True - - -# ======================================================================================================================= -# WriterThreadCaseModuleWithEntryPoint -# ======================================================================================================================= -class WriterThreadCaseModuleWithEntryPoint(WriterThreadCaseMSwitch): - TEST_FILE = 'tests_pydevd_python._debugger_case_module_entry_point:main' - IS_MODULE = True - - def get_main_filename(self): - return debugger_unittest._get_debugger_test_file('_debugger_case_module_entry_point.py') - - - - -#======================================================================================================================= -# WriterThreadCaseRemoteDebugger -#======================================================================================================================= -class WriterThreadCaseRemoteDebugger(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case_remote.py') - - def run(self): - self.start_socket(8787) - - self.log.append('making initial run') - self.write_make_initial_run() - - self.log.append('waiting for breakpoint hit') - thread_id, frame_id = self.wait_for_breakpoint_hit('105') - - self.log.append('run thread') - self.write_run_thread(thread_id) - - self.log.append('asserting') - try: - assert 5 == self._sequence, 'Expected 5. Had: %s' % self._sequence - except: - self.log.append('assert failed!') - raise - self.log.append('asserted') - - self.finished_ok = True - -#======================================================================================================================= -# _SecondaryMultiProcProcessWriterThread -#======================================================================================================================= -class _SecondaryMultiProcProcessWriterThread(debugger_unittest.AbstractWriterThread): - - FORCE_KILL_PROCESS_WHEN_FINISHED_OK = True - - def __init__(self, server_socket): - debugger_unittest.AbstractWriterThread.__init__(self) - self.server_socket = server_socket - - def run(self): - print('waiting for second process') - self.sock, addr = self.server_socket.accept() - print('accepted second process') - - from tests_pydevd_python.debugger_unittest import ReaderThread - self.reader_thread = ReaderThread(self.sock) - self.reader_thread.start() - - self._sequence = -1 - # initial command is always the version - self.write_version() - self.log.append('start_socket') - self.write_make_initial_run() - time.sleep(.5) - self.finished_ok = True - -#======================================================================================================================= -# WriterThreadCaseRemoteDebuggerMultiProc -#======================================================================================================================= -class WriterThreadCaseRemoteDebuggerMultiProc(debugger_unittest.AbstractWriterThread): - - # It seems sometimes it becomes flaky on the ci because the process outlives the writer thread... - # As we're only interested in knowing if a second connection was received, just kill the related - # process. - FORCE_KILL_PROCESS_WHEN_FINISHED_OK = True - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case_remote_1.py') - - def run(self): - self.start_socket(8787) - - self.log.append('making initial run') - self.write_make_initial_run() - - self.log.append('waiting for breakpoint hit') - thread_id, frame_id = self.wait_for_breakpoint_hit('105') - - self.secondary_multi_proc_process_writer_thread = secondary_multi_proc_process_writer_thread = \ - _SecondaryMultiProcProcessWriterThread(self.server_socket) - secondary_multi_proc_process_writer_thread.start() - - self.log.append('run thread') - self.write_run_thread(thread_id) - - for _i in xrange(400): - if secondary_multi_proc_process_writer_thread.finished_ok: - break - time.sleep(.1) - else: - self.log.append('Secondary process not finished ok!') - raise AssertionError('Secondary process not finished ok!') - - self.log.append('Secondary process finished!') - try: - assert 5 == self._sequence, 'Expected 5. Had: %s' % self._sequence - except: - self.log.append('assert failed!') - raise - self.log.append('asserted') - - self.finished_ok = True - - def do_kill(self): - debugger_unittest.AbstractWriterThread.do_kill(self) - if hasattr(self, 'secondary_multi_proc_process_writer_thread'): - self.secondary_multi_proc_process_writer_thread.do_kill() - -#======================================================================================================================= -# WriterThreadCaseTypeExt - [Test Case]: Custom type presentation extensions -#====================================================================================================================== -class WriterThreadCaseTypeExt(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case_type_ext.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(7, None) - self.write_make_initial_run() - - thread_id, frame_id, line = self.wait_for_breakpoint_hit('111', True) - self.write_get_frame(thread_id, frame_id) - self.wait_for_var(r'') is True - self.write_get_variable(thread_id, frame_id, 'my_rect') - self.wait_for_var(r''.format(builtin_qualifier)) is True - self.write_run_thread(thread_id) - self.finished_ok = True - - - def get_environ(self): - env = os.environ.copy() - - python_path = env.get("PYTHONPATH","") - ext_base = debugger_unittest._get_debugger_test_file('my_extensions') - env['PYTHONPATH']= ext_base + os.pathsep + python_path if python_path else ext_base - return env - -#======================================================================================================================= -# WriterThreadCaseEventExt - [Test Case]: Test initialize event for extensions -#====================================================================================================================== -class WriterThreadCaseEventExt(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case_event_ext.py') - - def run(self): - self.start_socket() - self.write_make_initial_run() - self.finished_ok = True - - def additional_output_checks(self, stdout, stderr): - if 'INITIALIZE EVENT RECEIVED' not in stdout: - raise AssertionError('No initialize event received') - - def get_environ(self): - env = os.environ.copy() - - python_path = env.get("PYTHONPATH","") - ext_base = debugger_unittest._get_debugger_test_file('my_extensions') - env['PYTHONPATH']= ext_base + os.pathsep + python_path if python_path else ext_base - env["VERIFY_EVENT_TEST"] = "1" - return env - -#======================================================================================================================= -# Test -#======================================================================================================================= -class Test(unittest.TestCase, debugger_unittest.DebuggerRunner): - - def get_command_line(self): - if IS_JYTHON: - if sys.executable is not None: - # i.e.: we're running with the provided jython.exe - return [sys.executable] - else: - - - return [ - get_java_location(), - '-classpath', - get_jython_jar(), - 'org.python.util.jython' - ] - - if IS_CPYTHON: - return [sys.executable, '-u'] - - if IS_IRONPYTHON: - return [ - sys.executable, - '-X:Frames' - ] - - raise RuntimeError('Unable to provide command line') - - @unittest.skipIf(IS_IRONPYTHON, reason='Test needs gc.get_referrers to really check anything.') - def test_case_1(self): - self.check_case(WriterThreadCase1) - - def test_case_2(self): - self.check_case(WriterThreadCase2) - - @unittest.skipIf(IS_IRONPYTHON, reason='This test fails once in a while due to timing issues on IronPython, so, skipping it.') - def test_case_3(self): - self.check_case(WriterThreadCase3) - - @unittest.skipIf(IS_JYTHON, reason='This test is flaky on Jython, so, skipping it.') - def test_case_4(self): - self.check_case(WriterThreadCase4) - - def test_case_5(self): - self.check_case(WriterThreadCase5) - - def test_case_6(self): - self.check_case(WriterThreadCase6) - - @unittest.skipIf(IS_IRONPYTHON, "Different behavior on IronPython") - def test_case_7(self): - # This test checks that we start without variables and at each step a new var is created, but on ironpython, - # the variables exist all at once (with None values), so, we can't test it properly. - self.check_case(WriterThreadCase7) - - def test_case_8(self): - self.check_case(WriterThreadCase8) - - def test_case_9(self): - self.check_case(WriterThreadCase9) - - def test_case_10(self): - self.check_case(WriterThreadCase10) - - def test_case_11(self): - self.check_case(WriterThreadCase11) - - def test_case_12(self): - self.check_case(WriterThreadCase12) - - @unittest.skipIf(IS_IRONPYTHON, reason='Failing on IronPython (needs to be investigated).') - def test_case_13(self): - self.check_case(WriterThreadCase13) - - def test_case_14(self): - self.check_case(WriterThreadCase14) - - def test_case_15(self): - self.check_case(WriterThreadCase15) - - @unittest.skipIf(not IS_NUMPY, "numpy not available") - def test_case_16(self): - self.check_case(WriterThreadCase16) - - def test_case_17(self): - self.check_case(WriterThreadCase17) - - def test_case_17a(self): - self.check_case(WriterThreadCase17a) - - @unittest.skipIf(IS_IRONPYTHON or IS_JYTHON, 'Unsupported assign to local') - def test_case_18(self): - self.check_case(WriterThreadCase18) - - def test_case_19(self): - self.check_case(WriterThreadCase19) - - # PY-29051 - def test_case_20(self): - self.check_case(WriterThreadCase20) - - if TEST_DJANGO: - def test_case_django(self): - self.check_case(WriterThreadCaseDjango) - - def test_case_django2(self): - self.check_case(WriterThreadCaseDjango2) - - - if TEST_CYTHON: - def test_cython(self): - from _pydevd_bundle import pydevd_cython - assert pydevd_cython.trace_dispatch is not None - - def _has_qt(self): - try: - from PySide import QtCore # @UnresolvedImport - return True - except: - try: - from PyQt4 import QtCore - return True - except: - try: - from PyQt5 import QtCore - return True - except: - pass - return False - - def test_case_qthread1(self): - if self._has_qt(): - self.check_case(WriterThreadCaseQThread1) - - def test_case_qthread2(self): - if self._has_qt(): - self.check_case(WriterThreadCaseQThread2) - - def test_case_qthread3(self): - if self._has_qt(): - self.check_case(WriterThreadCaseQThread3) - - def test_case_qthread4(self): - if self._has_qt(): - self.check_case(WriterThreadCaseQThread4) - - def test_m_switch(self): - self.check_case(WriterThreadCaseMSwitch) - - def test_module_entry_point(self): - self.check_case(WriterThreadCaseModuleWithEntryPoint) - - @unittest.skip('New behaviour differs from PyDev -- needs to be investigated).') - def test_case_set_next_statement(self): - self.check_case(WriterThreadCaseSetNextStatement) - - @unittest.skipIf(IS_IRONPYTHON, reason='Failing on IronPython (needs to be investigated).') - def test_case_type_ext(self): - self.check_case(WriterThreadCaseTypeExt) - - @unittest.skipIf(IS_IRONPYTHON, reason='Failing on IronPython (needs to be investigated).') - def test_case_event_ext(self): - self.check_case(WriterThreadCaseEventExt) - - -@unittest.skipIf(not IS_CPYTHON, reason='CPython only test.') -class TestPythonRemoteDebugger(unittest.TestCase, debugger_unittest.DebuggerRunner): - - def get_command_line(self): - return [sys.executable, '-u'] - - def add_command_line_args(self, args): - return args + [self.writer_thread.TEST_FILE] - - def test_remote_debugger(self): - self.check_case(WriterThreadCaseRemoteDebugger) - - @unittest.skipIf(IS_PY2, "Skip test for Python 2, because child process sometimes keeps alive") - def test_remote_debugger2(self): - self.check_case(WriterThreadCaseRemoteDebuggerMultiProc) - - -def get_java_location(): - from java.lang import System # @UnresolvedImport - jre_dir = System.getProperty("java.home") - for f in [os.path.join(jre_dir, 'bin', 'java.exe'), os.path.join(jre_dir, 'bin', 'java')]: - if os.path.exists(f): - return f - raise RuntimeError('Unable to find java executable') - -def get_jython_jar(): - from java.lang import ClassLoader # @UnresolvedImport - cl = ClassLoader.getSystemClassLoader() - paths = map(lambda url: url.getFile(), cl.getURLs()) - for p in paths: - if 'jython.jar' in p: - return p - raise RuntimeError('Unable to find jython.jar') - - -def get_location_from_line(line): - loc = line.split('=')[1].strip() - if loc.endswith(';'): - loc = loc[:-1] - if loc.endswith('"'): - loc = loc[:-1] - if loc.startswith('"'): - loc = loc[1:] - return loc - - -def split_line(line): - if '=' not in line: - return None, None - var = line.split('=')[0].strip() - return var, get_location_from_line(line) - - - -# c:\bin\jython2.7.0\bin\jython.exe -m py.test tests_python diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_frame_eval_and_tracing.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_frame_eval_and_tracing.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_frame_eval_and_tracing.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_frame_eval_and_tracing.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,221 +0,0 @@ -import os -import platform -import unittest -import sys - -import time - -try: - from tests_pydevd_python import debugger_unittest -except: - sys.path.append(os.path.dirname(os.path.dirname(__file__))) - -IS_CPYTHON = platform.python_implementation() == 'CPython' -IS_PY36 = sys.version_info[0] == 3 and sys.version_info[1] == 6 -TEST_CYTHON = os.getenv('PYDEVD_USE_CYTHON', None) == 'YES' - - -class WriterThreadStepAndResume(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case10.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(10, 'Method2') - self.write_add_breakpoint(2, 'Method1') - self.write_make_initial_run() - - thread_id, frame_id, line, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type('111', True) - - assert line == 10, 'Expected return to be in line 10, was: %s' % line - assert suspend_type == "frame_eval", 'Expected suspend type to be "frame_eval", but was: %s' % suspend_type - - self.write_step_over(thread_id) - thread_id, frame_id, line, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type('108', True) - - assert line == 11, 'Expected return to be in line 11, was: %s' % line - # we use tracing debugger while stepping - assert suspend_type == "trace", 'Expected suspend type to be "trace", but was: %s' % suspend_type - - self.write_run_thread(thread_id) - - thread_id, frame_id, line, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type('111', True) - - assert line == 2, 'Expected return to be in line 2, was: %s' % line - # we enable frame evaluation debugger after "Resume" command - assert suspend_type == "frame_eval", 'Expected suspend type to be "frame_eval", but was: %s' % suspend_type - - self.write_run_thread(thread_id) - - self.finished_ok = True - - -class WriterThreadStepReturn(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case56.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(2, 'Call2') - self.write_make_initial_run() - - thread_id, frame_id, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type() - - assert suspend_type == "frame_eval", 'Expected suspend type to be "frame_eval", but was: %s' % suspend_type - self.write_get_frame(thread_id, frame_id) - - self.write_step_return(thread_id) - - thread_id, frame_id, line, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type('109', True) - - assert line == 8, 'Expecting it to go to line 8. Went to: %s' % line - # Step return uses temporary breakpoint, so we use tracing debugger - assert suspend_type == "trace", 'Expected suspend type to be "trace", but was: %s' % suspend_type - - self.write_step_in(thread_id) - - thread_id, frame_id, line, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type('107', True) - - # goes to line 4 in jython (function declaration line) - assert line in (4, 5), 'Expecting it to go to line 4 or 5. Went to: %s' % line - # we use tracing debugger for stepping - assert suspend_type == "trace", 'Expected suspend type to be "trace", but was: %s' % suspend_type - - self.write_run_thread(thread_id) - - self.finished_ok = True - - -class WriterThreadAddLineBreakWhileRun(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case3.py') - - def run(self): - self.start_socket() - self.write_make_initial_run() - time.sleep(.5) - breakpoint_id = self.write_add_breakpoint(4, '') - - thread_id, frame_id, line, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type('111', True) - - assert line == 4, 'Expected return to be in line 4, was: %s' % line - # we use tracing debugger if breakpoint was added while running - assert suspend_type == "trace", 'Expected suspend type to be "trace", but was: %s' % suspend_type - - self.write_get_frame(thread_id, frame_id) - - self.write_run_thread(thread_id) - - thread_id, frame_id, line, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type('111', True) - assert line == 4, 'Expected return to be in line 4, was: %s' % line - # we still use tracing debugger - assert suspend_type == "trace", 'Expected suspend type to be "trace", but was: %s' % suspend_type - - self.write_get_frame(thread_id, frame_id) - - self.write_remove_breakpoint(breakpoint_id) - - self.write_run_thread(thread_id) - - self.finished_ok = True - - -class WriterThreadExceptionBreak(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case10.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(10, 'Method2') - self.write_add_exception_breakpoint_with_policy('IndexError', "1", "0", "0") - self.write_make_initial_run() - time.sleep(.5) - - thread_id, frame_id, line, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type('111', True) - - assert line == 10, 'Expected return to be in line 10, was: %s' % line - # we use tracing debugger if there are exception breakpoints - assert suspend_type == "trace", 'Expected suspend type to be "trace", but was: %s' % suspend_type - - self.write_run_thread(thread_id) - - self.finished_ok = True - - -class WriterThreadAddExceptionBreakWhileRunning(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case10.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(10, 'Method2') - self.write_add_breakpoint(2, 'Method1') - # self.write_add_exception_breakpoint_with_policy('IndexError', "1", "0", "0") - self.write_make_initial_run() - time.sleep(.5) - - thread_id, frame_id, line, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type('111', True) - - assert line == 10, 'Expected return to be in line 10, was: %s' % line - # we use tracing debugger if there are exception breakpoints - assert suspend_type == "frame_eval", 'Expected suspend type to be "frame_eval", but was: %s' % suspend_type - - self.write_add_exception_breakpoint_with_policy('IndexError', "1", "0", "0") - - self.write_run_thread(thread_id) - - thread_id, frame_id, line, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type('111', True) - - assert line == 2, 'Expected return to be in line 2, was: %s' % line - # we use tracing debugger if exception break was added - assert suspend_type == "trace", 'Expected suspend type to be "trace", but was: %s' % suspend_type - - self.write_run_thread(thread_id) - - self.finished_ok = True - - -class WriterThreadAddTerminationExceptionBreak(debugger_unittest.AbstractWriterThread): - - TEST_FILE = debugger_unittest._get_debugger_test_file('_debugger_case10.py') - - def run(self): - self.start_socket() - self.write_add_breakpoint(10, 'Method2') - self.write_add_exception_breakpoint_with_policy('IndexError', "0", "1", "0") - self.write_make_initial_run() - time.sleep(.5) - - thread_id, frame_id, line, suspend_type = self.wait_for_breakpoint_hit_with_suspend_type('111', True) - - assert line == 10, 'Expected return to be in line 10, was: %s' % line - # we can use frame evaluation with exception breakpoint with "On termination" suspend policy - assert suspend_type == "frame_eval", 'Expected suspend type to be "frame_eval", but was: %s' % suspend_type - - self.write_run_thread(thread_id) - - self.finished_ok = True - - -@unittest.skipIf(not IS_PY36 or not IS_CPYTHON or not TEST_CYTHON, reason='Test requires Python 3.6') -class TestFrameEval(unittest.TestCase, debugger_unittest.DebuggerRunner): - def get_command_line(self): - return [sys.executable, '-u'] - - def test_step_and_resume(self): - self.check_case(WriterThreadStepAndResume) - - def test_step_return(self): - self.check_case(WriterThreadStepReturn) - - def test_add_break_while_running(self): - self.check_case(WriterThreadAddLineBreakWhileRun) - - def test_exc_break(self): - self.check_case(WriterThreadExceptionBreak) - - def test_add_exc_break_while_running(self): - self.check_case(WriterThreadAddExceptionBreakWhileRunning) - - def test_add_termination_exc_break(self): - self.check_case(WriterThreadAddTerminationExceptionBreak) \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_process_command_line.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_process_command_line.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_process_command_line.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_process_command_line.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -import unittest - -class Test(unittest.TestCase): - - def testProcessCommandLine(self): - from _pydevd_bundle.pydevd_command_line_handling import process_command_line, setup_to_argv - setup = process_command_line(['pydevd.py', '--port', '1', '--save-threading']) - assert setup['save-threading'] - assert setup['port'] == 1 - assert not setup['qt-support'] - - argv = setup_to_argv(setup) - assert argv[0].endswith('pydevd.py') or argv[0].endswith('pydevd$py.class'), 'Expected: %s to end with pydevd.py' % (argv[0],) - argv = argv[1:] - assert argv == ['--port', '1', '--save-threading'] - - def testProcessCommandLine2(self): - from _pydevd_bundle.pydevd_command_line_handling import process_command_line, setup_to_argv - setup = process_command_line(['pydevd.py', '--port', '1', '--qt-support=auto']) - assert setup['qt-support'] == 'auto' - - setup = process_command_line(['pydevd.py', '--port', '1', '--qt-support']) - assert setup['qt-support'] == 'auto' - - setup = process_command_line(['pydevd.py', '--port', '1', '--qt-support=pyqt4']) - assert setup['qt-support'] == 'pyqt4' - - self.assertRaises(ValueError, process_command_line, ['pydevd.py', '--port', '1', '--qt-support=wrong']) diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_pydev_monkey.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_pydev_monkey.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_pydev_monkey.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_pydev_monkey.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,179 +0,0 @@ -import os -import sys -import unittest - -try: - from _pydev_bundle import pydev_monkey -except: - sys.path.append(os.path.dirname(os.path.dirname(__file__))) - from _pydev_bundle import pydev_monkey -from pydevd import SetupHolder -from _pydev_bundle.pydev_monkey import pydev_src_dir - - -class TestCase(unittest.TestCase): - - def test_monkey(self): - original = SetupHolder.setup - - try: - SetupHolder.setup = {'client': '127.0.0.1', 'port': '0'} - check = '''C:\\bin\\python.exe -u -c connect(\\"127.0.0.1\\")''' - debug_command = ( - 'import sys; ' - 'sys.path.append(r\'%s\'); ' - 'import pydevd; pydevd.settrace(host=\'127.0.0.1\', port=0, suspend=False, ' - 'trace_only_current_thread=False, patch_multiprocessing=True); ' - 'from pydevd import SetupHolder; SetupHolder.setup = %s; ' - 'connect("127.0.0.1")') % (pydev_src_dir, SetupHolder.setup) - if sys.platform == "win32": - debug_command = debug_command.replace('"', '\\"') - debug_command = '"%s"' % debug_command - self.assertEqual( - 'C:\\bin\\python.exe -u -c %s' % debug_command, - pydev_monkey.patch_arg_str_win(check)) - finally: - SetupHolder.setup = original - - def test_str_to_args_windows(self): - self.assertEqual(['a', 'b'], pydev_monkey.str_to_args_windows('a "b"')) - - def test_monkey_patch_args_indc(self): - original = SetupHolder.setup - - try: - SetupHolder.setup = {'client': '127.0.0.1', 'port': '0'} - check = ['C:\\bin\\python.exe', '-u', '-c', 'connect("127.0.0.1")'] - debug_command = ( - 'import sys; sys.path.append(r\'%s\'); import pydevd; ' - 'pydevd.settrace(host=\'127.0.0.1\', port=0, suspend=False, trace_only_current_thread=False, patch_multiprocessing=True); ' - 'from pydevd import SetupHolder; SetupHolder.setup = %s; ' - 'connect("127.0.0.1")') % (pydev_src_dir, SetupHolder.setup) - if sys.platform == "win32": - debug_command = debug_command.replace('"', '\\"') - debug_command = '"%s"' % debug_command - res = pydev_monkey.patch_args(check) - self.assertEqual(res, [ - 'C:\\bin\\python.exe', - '-u', - '-c', - debug_command - ]) - finally: - SetupHolder.setup = original - - def test_monkey_patch_args_module(self): - original = SetupHolder.setup - - try: - SetupHolder.setup = {'client': '127.0.0.1', 'port': '0', 'multiprocess': True} - check = ['C:\\bin\\python.exe', '-m', 'test'] - from _pydevd_bundle.pydevd_command_line_handling import get_pydevd_file - self.assertEqual(pydev_monkey.patch_args(check), [ - 'C:\\bin\\python.exe', - get_pydevd_file(), - '--module', - '--port', - '0', - '--client', - '127.0.0.1', - '--multiprocess', - '--file', - 'test', - ]) - finally: - SetupHolder.setup = original - - def test_monkey_patch_args_no_indc(self): - original = SetupHolder.setup - - try: - SetupHolder.setup = {'client': '127.0.0.1', 'port': '0'} - check = ['C:\\bin\\python.exe', 'connect(\\"127.0.0.1\\")'] - from _pydevd_bundle.pydevd_command_line_handling import get_pydevd_file - self.assertEqual(pydev_monkey.patch_args(check), [ - 'C:\\bin\\python.exe', - get_pydevd_file(), - '--port', - '0', - '--client', - '127.0.0.1', - '--file', - 'connect(\\"127.0.0.1\\")']) - finally: - SetupHolder.setup = original - - def test_monkey_patch_args_no_indc_with_pydevd(self): - original = SetupHolder.setup - - try: - SetupHolder.setup = {'client': '127.0.0.1', 'port': '0'} - check = ['C:\\bin\\python.exe', 'pydevd.py', 'connect(\\"127.0.0.1\\")', 'bar'] - - self.assertEqual(pydev_monkey.patch_args(check), [ - 'C:\\bin\\python.exe', 'pydevd.py', 'connect(\\"127.0.0.1\\")', 'bar']) - finally: - SetupHolder.setup = original - - def test_monkey_patch_args_no_indc_without_pydevd(self): - original = SetupHolder.setup - from _pydevd_bundle.pydevd_command_line_handling import get_pydevd_file - - try: - SetupHolder.setup = {'client': '127.0.0.1', 'port': '0'} - check = ['C:\\bin\\python.exe', 'target.py', 'connect(\\"127.0.0.1\\")', 'bar'] - - self.assertEqual(pydev_monkey.patch_args(check), [ - 'C:\\bin\\python.exe', - get_pydevd_file(), - '--port', - '0', - '--client', - '127.0.0.1', - '--file', - 'target.py', - 'connect(\\"127.0.0.1\\")', - 'bar', - ]) - finally: - SetupHolder.setup = original - - def test_monkey_patch_c_program_arg(self): - original = SetupHolder.setup - from _pydevd_bundle.pydevd_command_line_handling import get_pydevd_file - - try: - SetupHolder.setup = {'client': '127.0.0.1', 'port': '0'} - check = ['C:\\bin\\python.exe', '-u', 'target.py', '-c', '-another_arg'] - - self.assertEqual(pydev_monkey.patch_args(check), [ - 'C:\\bin\\python.exe', - '-u', - get_pydevd_file(), - '--port', - '0', - '--client', - '127.0.0.1', - '--file', - 'target.py', - '-c', - '-another_arg' - ]) - finally: - SetupHolder.setup = original - - # PY-27594 - def test_skip_stdin(self): - original = SetupHolder.setup - try: - SetupHolder.setup = {'client': '127.0.0.1', 'port': '0'} - check = ['C:\\bin\\python.exe', '-', 'pip', 'setuptools'] - - self.assertEqual(pydev_monkey.patch_args(check), [ - 'C:\\bin\\python.exe', '-', 'pip', 'setuptools']) - finally: - SetupHolder.setup = original - - -if __name__ == '__main__': - unittest.main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_save_locals.py pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_save_locals.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_python/test_save_locals.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_python/test_save_locals.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ -import inspect -import sys -import unittest - -from _pydevd_bundle.pydevd_save_locals import save_locals -from _pydevd_bundle.pydevd_constants import IS_JYTHON, IS_IRONPYTHON -import pytest - - -def use_save_locals(name, value): - """ - Attempt to set the local of the given name to value, using locals_to_fast. - """ - frame = inspect.currentframe().f_back - locals_dict = frame.f_locals - locals_dict[name] = value - - save_locals(frame) - - -def check_method(fn): - """ - A harness for testing methods that attempt to modify the values of locals on the stack. - """ - x = 1 - - # The method 'fn' should attempt to set x = 2 in the current frame. - fn('x', 2) - - return x - - - -@pytest.mark.skipif(IS_JYTHON or IS_IRONPYTHON, reason='CPython/pypy only') -class TestSetLocals(unittest.TestCase): - """ - Test setting locals in one function from another function using several approaches. - """ - - def test_set_locals_using_save_locals(self): - x = check_method(use_save_locals) - self.assertEqual(x, 2) # Expected to succeed - - - def test_frame_simple_change(self): - frame = sys._getframe() - a = 20 - frame.f_locals['a'] = 50 - save_locals(frame) - self.assertEqual(50, a) - - - def test_frame_co_freevars(self): - - outer_var = 20 - - def func(): - frame = sys._getframe() - frame.f_locals['outer_var'] = 50 - save_locals(frame) - self.assertEqual(50, outer_var) - - func() - - def test_frame_co_cellvars(self): - - def check_co_vars(a): - frame = sys._getframe() - def function2(): - print(a) - - assert 'a' in frame.f_code.co_cellvars - frame = sys._getframe() - frame.f_locals['a'] = 50 - save_locals(frame) - self.assertEqual(50, a) - - check_co_vars(1) - - - def test_frame_change_in_inner_frame(self): - def change(f): - self.assertTrue(f is not sys._getframe()) - f.f_locals['a']= 50 - save_locals(f) - - - frame = sys._getframe() - a = 20 - change(frame) - self.assertEqual(50, a) - - -if __name__ == '__main__': - suite = unittest.TestSuite() -# suite.addTest(TestSetLocals('test_set_locals_using_dict')) -# #suite.addTest(Test('testCase10a')) -# unittest.TextTestRunner(verbosity=3).run(suite) - - suite = unittest.makeSuite(TestSetLocals) - unittest.TextTestRunner(verbosity=3).run(suite) diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/not_in_default_pythonpath.txt pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/not_in_default_pythonpath.txt --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/not_in_default_pythonpath.txt 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/not_in_default_pythonpath.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -(no __init__.py file) \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/__init__.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/__init__.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/__init__.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/__init__.py 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/deep_nest_test.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/deep_nest_test.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/deep_nest_test.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/deep_nest_test.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -import unittest - -class SampleTest(unittest.TestCase): - - def setUp(self): - return - - def tearDown(self): - return - - def test_non_unique_name(self): - pass - - def test_asdf2(self): - pass - - def test_i_am_a_unique_test_name(self): - pass - - -if __name__ == '__main__': - unittest.main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/__init__.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/__init__.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/__init__.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/__init__.py 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/non_test_file.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/non_test_file.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/non_test_file.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested2/non_test_file.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - -""" i am a python file with no tests """ -pass diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/__init__.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/__init__.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/__init__.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/__init__.py 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/junk.txt pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/junk.txt --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/junk.txt 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/junk.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -im a junk file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/non_test_file.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/non_test_file.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/non_test_file.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/nested3/non_test_file.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - -""" i am a python file with no tests """ -pass diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/non_test_file.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/non_test_file.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/non_test_file.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/non_test_file.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - -""" i am a python file with no tests """ -pass diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/simple4_test.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/simple4_test.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/simple4_test.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/nested_dir/simple4_test.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -import unittest - -class NestedSampleTest(unittest.TestCase): - - def setUp(self): - return - - def tearDown(self): - return - - def test_non_unique_name(self): - pass - - -if __name__ == '__main__': - unittest.main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/non_test_file.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/non_test_file.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/non_test_file.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/non_test_file.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - -""" i am a python file with no tests """ -pass diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/not_in_default_pythonpath.txt pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/not_in_default_pythonpath.txt --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/not_in_default_pythonpath.txt 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/not_in_default_pythonpath.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -(no __init__.py file) \ No newline at end of file diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/simple2_test.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/simple2_test.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/simple2_test.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/simple2_test.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -import unittest - -class YetAnotherSampleTest(unittest.TestCase): - - def setUp(self): - return - - def tearDown(self): - return - - def test_abc(self): - pass - - -if __name__ == '__main__': - unittest.main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/simple3_test.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/simple3_test.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/simple3_test.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/simple3_test.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -import unittest - -class StillYetAnotherSampleTest(unittest.TestCase): - - def setUp(self): - return - - def tearDown(self): - return - - def test_non_unique_name(self): - pass - - -if __name__ == '__main__': - unittest.main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/simpleClass_test.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/simpleClass_test.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/simpleClass_test.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/simpleClass_test.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -import unittest - -class SetUpClassTest(unittest.TestCase): - - @classmethod - def setUpClass(cls): - raise ValueError("This is an INTENTIONAL value error in setUpClass.") - - def test_blank(self): - pass - - -if __name__ == '__main__': - unittest.main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/simpleModule_test.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/simpleModule_test.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/simpleModule_test.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/simpleModule_test.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -import unittest - -def setUpModule(): - raise ValueError("This is an INTENTIONAL value error in setUpModule.") - -class SetUpModuleTest(unittest.TestCase): - - def setUp(cls): - pass - - def test_blank(self): - pass - - -if __name__ == '__main__': - unittest.main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/simple_test.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/simple_test.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/samples/simple_test.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/samples/simple_test.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -import unittest - -class SampleTest(unittest.TestCase): - - def setUp(self): - pass - - def tearDown(self): - pass - - def test_xxxxxx1(self): - self.fail('Fail test 2') - def test_xxxxxx2(self): - pass - def test_xxxxxx3(self): - pass - def test_xxxxxx4(self): - pass - def test_non_unique_name(self): - print('non unique name ran') - - -class AnotherSampleTest(unittest.TestCase): - def setUp(self): - pass - - def tearDown(self): - pass - - def test_1(self): - pass - def test_2(self): - """ im a doc string""" - pass - def todo_not_tested(self): - ''' - Not there by default! - ''' - - -if __name__ == '__main__': -# suite = unittest.makeSuite(SampleTest, 'test') -# runner = unittest.TextTestRunner( verbosity=3 ) -# runner.run(suite) - unittest.main() diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/test_pydevdio.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/test_pydevdio.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/test_pydevdio.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/test_pydevdio.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -import sys -import os - - -import unittest - -class Test(unittest.TestCase): - - def test_it(self): - #make it as if we were executing from the directory above this one (so that we can use jycompletionserver - #without the need for it being in the pythonpath) - #(twice the dirname to get the previous level from this file.) - import test_pydevdio #@UnresolvedImport - importing itself - ADD_TO_PYTHONPATH = os.path.join(os.path.dirname(os.path.dirname(test_pydevdio.__file__))) - sys.path.insert(0, ADD_TO_PYTHONPATH) - - try: - from _pydevd_bundle import pydevd_io - original = sys.stdout - - try: - sys.stdout = pydevd_io.IOBuf() - print('foo') - print('bar') - - self.assertEqual('foo\nbar\n', sys.stdout.getvalue()) #@UndefinedVariable - - print('ww') - print('xx') - self.assertEqual('ww\nxx\n', sys.stdout.getvalue()) #@UndefinedVariable - finally: - sys.stdout = original - finally: - #remove it to leave it ok for other tests - sys.path.remove(ADD_TO_PYTHONPATH) - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/test_pydevd_property.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/test_pydevd_property.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/test_pydevd_property.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/test_pydevd_property.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,124 +0,0 @@ -''' -Created on Aug 22, 2011 - -@author: hussain.bohra -@author: fabioz -''' - -import os -import sys -import unittest - -#======================================================================================================================= -# Test -#======================================================================================================================= -class Test(unittest.TestCase): - """Test cases to validate custom property implementation in pydevd - """ - - def setUp(self, nused=None): - self.tempdir = os.path.join(os.path.dirname(os.path.dirname(__file__))) - sys.path.insert(0, self.tempdir) - from _pydevd_bundle import pydevd_traceproperty - self.old = pydevd_traceproperty.replace_builtin_property() - - - def tearDown(self, unused=None): - from _pydevd_bundle import pydevd_traceproperty - pydevd_traceproperty.replace_builtin_property(self.old) - sys.path.remove(self.tempdir) - - - def test_property(self): - """Test case to validate custom property - """ - - from _pydevd_bundle import pydevd_traceproperty - class TestProperty(object): - - def __init__(self): - self._get = 0 - self._set = 0 - self._del = 0 - - def get_name(self): - self._get += 1 - return self.__name - - def set_name(self, value): - self._set += 1 - self.__name = value - - def del_name(self): - self._del += 1 - del self.__name - name = property(get_name, set_name, del_name, "name's docstring") - self.assertEqual(name.__class__, pydevd_traceproperty.DebugProperty) - - testObj = TestProperty() - self._check(testObj) - - - def test_property2(self): - """Test case to validate custom property - """ - - class TestProperty(object): - - def __init__(self): - self._get = 0 - self._set = 0 - self._del = 0 - - def name(self): - self._get += 1 - return self.__name - name = property(name) - - def set_name(self, value): - self._set += 1 - self.__name = value - name.setter(set_name) - - def del_name(self): - self._del += 1 - del self.__name - name.deleter(del_name) - - testObj = TestProperty() - self._check(testObj) - - - def test_property3(self): - """Test case to validate custom property - """ - - class TestProperty(object): - - def __init__(self): - self._name = 'foo' - - def name(self): - return self._name - name = property(name) - - testObj = TestProperty() - self.assertRaises(AttributeError, setattr, testObj, 'name', 'bar') - self.assertRaises(AttributeError, delattr, testObj, 'name') - - - def _check(self, testObj): - testObj.name = "Custom" - self.assertEqual(1, testObj._set) - - self.assertEqual(testObj.name, "Custom") - self.assertEqual(1, testObj._get) - - self.assertTrue(hasattr(testObj, 'name')) - del testObj.name - self.assertEqual(1, testObj._del) - - self.assertTrue(not hasattr(testObj, 'name')) - testObj.name = "Custom2" - self.assertEqual(testObj.name, "Custom2") - diff -Nru pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/test_runfiles.py pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/test_runfiles.py --- pycharm-2018.3.5/helpers/pydev/tests_pydevd_runfiles/test_runfiles.py 2019-02-26 08:40:10.000000000 +0000 +++ pycharm-2019.1/helpers/pydev/tests_pydevd_runfiles/test_runfiles.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,433 +0,0 @@ -import os.path -import sys - -IS_JYTHON = sys.platform.find('java') != -1 - -try: - this_file_name = __file__ -except NameError: - # stupid jython. plain old __file__ isnt working for some reason - import test_runfiles #@UnresolvedImport - importing the module itself - this_file_name = test_runfiles.__file__ - - -desired_runfiles_path = os.path.normpath(os.path.dirname(this_file_name) + "/..") -sys.path.insert(0, desired_runfiles_path) - -from _pydev_runfiles import pydev_runfiles_unittest -from _pydev_runfiles import pydev_runfiles_xml_rpc -from _pydevd_bundle import pydevd_io - -#remove existing pydev_runfiles from modules (if any), so that we can be sure we have the correct version -if 'pydev_runfiles' in sys.modules: - del sys.modules['pydev_runfiles'] -if '_pydev_runfiles.pydev_runfiles' in sys.modules: - del sys.modules['_pydev_runfiles.pydev_runfiles'] - - -from _pydev_runfiles import pydev_runfiles -import unittest -import tempfile -import re - -try: - set -except: - from sets import Set as set - -#this is an early test because it requires the sys.path changed -orig_syspath = sys.path -a_file = pydev_runfiles.__file__ -pydev_runfiles.PydevTestRunner(pydev_runfiles.Configuration(files_or_dirs=[a_file])) -file_dir = os.path.dirname(os.path.dirname(a_file)) -assert file_dir in sys.path -sys.path = orig_syspath[:] - -#remove it so that we leave it ok for other tests -sys.path.remove(desired_runfiles_path) - -class RunfilesTest(unittest.TestCase): - - def _setup_scenario( - self, - path, - include_tests=None, - tests=None, - files_to_tests=None, - exclude_files=None, - exclude_tests=None, - include_files=None, - ): - self.MyTestRunner = pydev_runfiles.PydevTestRunner( - pydev_runfiles.Configuration( - files_or_dirs=path, - include_tests=include_tests, - verbosity=1, - tests=tests, - files_to_tests=files_to_tests, - exclude_files=exclude_files, - exclude_tests=exclude_tests, - include_files=include_files, - ) - ) - self.files = self.MyTestRunner.find_import_files() - self.modules = self.MyTestRunner.find_modules_from_files(self.files) - self.all_tests = self.MyTestRunner.find_tests_from_modules(self.modules) - self.filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - - def setUp(self): - self.file_dir = [os.path.abspath(os.path.join(desired_runfiles_path, 'tests_runfiles/samples'))] - self._setup_scenario(self.file_dir, None) - - - def test_suite_used(self): - for suite in self.all_tests + self.filtered_tests: - self.assertTrue(isinstance(suite, pydev_runfiles_unittest.PydevTestSuite)) - - def test_parse_cmdline(self): - sys.argv = "pydev_runfiles.py ./".split() - configuration = pydev_runfiles.parse_cmdline() - self.assertEqual([sys.argv[1]], configuration.files_or_dirs) - self.assertEqual(2, configuration.verbosity) # default value - self.assertEqual(None, configuration.include_tests) # default value - - sys.argv = "pydev_runfiles.py ../images c:/temp".split() - configuration = pydev_runfiles.parse_cmdline() - self.assertEqual(sys.argv[1:3], configuration.files_or_dirs) - self.assertEqual(2, configuration.verbosity) - - sys.argv = "pydev_runfiles.py --verbosity 3 ../junk c:/asdf ".split() - configuration = pydev_runfiles.parse_cmdline() - self.assertEqual(sys.argv[3:], configuration.files_or_dirs) - self.assertEqual(int(sys.argv[2]), configuration.verbosity) - - sys.argv = "pydev_runfiles.py --include_tests test_def ./".split() - configuration = pydev_runfiles.parse_cmdline() - self.assertEqual([sys.argv[-1]], configuration.files_or_dirs) - self.assertEqual([sys.argv[2]], configuration.include_tests) - - sys.argv = "pydev_runfiles.py --include_tests Abc.test_def,Mod.test_abc c:/junk/".split() - configuration = pydev_runfiles.parse_cmdline() - self.assertEqual([sys.argv[-1]], configuration.files_or_dirs) - self.assertEqual(sys.argv[2].split(','), configuration.include_tests) - - sys.argv = ('C:\\eclipse-SDK-3.2-win32\\eclipse\\plugins\\org.python.pydev.debug_1.2.2\\pysrc\\pydev_runfiles.py ' + - '--verbosity 1 ' + - 'C:\\workspace_eclipse\\fronttpa\\tests\\gui_tests\\calendar_popup_control_test.py ').split() - configuration = pydev_runfiles.parse_cmdline() - self.assertEqual([sys.argv[-1]], configuration.files_or_dirs) - self.assertEqual(1, configuration.verbosity) - - sys.argv = "pydev_runfiles.py --verbosity 1 --include_tests Mod.test_abc c:/junk/ ./".split() - configuration = pydev_runfiles.parse_cmdline() - self.assertEqual(sys.argv[5:], configuration.files_or_dirs) - self.assertEqual(int(sys.argv[2]), configuration.verbosity) - self.assertEqual([sys.argv[4]], configuration.include_tests) - - sys.argv = "pydev_runfiles.py --exclude_files=*.txt,a*.py".split() - configuration = pydev_runfiles.parse_cmdline() - self.assertEqual(['*.txt', 'a*.py'], configuration.exclude_files) - - sys.argv = "pydev_runfiles.py --exclude_tests=*__todo,test*bar".split() - configuration = pydev_runfiles.parse_cmdline() - self.assertEqual(['*__todo', 'test*bar'], configuration.exclude_tests) - - - def test___adjust_python_path_works_for_directories(self): - orig_syspath = sys.path - tempdir = tempfile.gettempdir() - pydev_runfiles.PydevTestRunner(pydev_runfiles.Configuration(files_or_dirs=[tempdir])) - self.assertEqual(1, tempdir in sys.path) - sys.path = orig_syspath[:] - - - def test___is_valid_py_file(self): - isvalid = self.MyTestRunner._PydevTestRunner__is_valid_py_file - self.assertEqual(1, isvalid("test.py")) - self.assertEqual(0, isvalid("asdf.pyc")) - self.assertEqual(0, isvalid("__init__.py")) - self.assertEqual(0, isvalid("__init__.pyc")) - self.assertEqual(1, isvalid("asdf asdf.pyw")) - - def test___unixify(self): - unixify = self.MyTestRunner._PydevTestRunner__unixify - self.assertEqual("c:/temp/junk/asdf.py", unixify("c:SEPtempSEPjunkSEPasdf.py".replace('SEP', os.sep))) - - def test___importify(self): - importify = self.MyTestRunner._PydevTestRunner__importify - self.assertEqual("temp.junk.asdf", importify("temp/junk/asdf.py")) - self.assertEqual("asdf", importify("asdf.py")) - self.assertEqual("abc.def.hgi", importify("abc/def/hgi")) - - def test_finding_a_file_from_file_system(self): - test_file = "simple_test.py" - self.MyTestRunner.files_or_dirs = [self.file_dir[0] + test_file] - files = self.MyTestRunner.find_import_files() - self.assertEqual(1, len(files)) - self.assertEqual(files[0], self.file_dir[0] + test_file) - - def test_finding_files_in_dir_from_file_system(self): - self.assertEqual(1, len(self.files) > 0) - for import_file in self.files: - self.assertEqual(-1, import_file.find(".pyc")) - self.assertEqual(-1, import_file.find("__init__.py")) - self.assertEqual(-1, import_file.find("\\")) - self.assertEqual(-1, import_file.find(".txt")) - - def test___get_module_from_str(self): - my_importer = self.MyTestRunner._PydevTestRunner__get_module_from_str - my_os_path = my_importer("os.path", True, 'unused') - from os import path - import os.path as path2 - self.assertEqual(path, my_os_path) - self.assertEqual(path2, my_os_path) - self.assertNotEqual(__import__("os.path"), my_os_path) - self.assertNotEqual(__import__("os"), my_os_path) - - def test_finding_modules_from_import_strings(self): - self.assertEqual(1, len(self.modules) > 0) - - def test_finding_tests_when_no_filter(self): - # unittest.py will create a TestCase with 0 tests in it - # since it just imports what is given - self.assertEqual(1, len(self.all_tests) > 0) - files_with_tests = [1 for t in self.all_tests if len(t._tests) > 0] - self.assertNotEqual(len(self.files), len(files_with_tests)) - - def count_suite(self, tests=None): - total = 0 - for t in tests: - total += t.countTestCases() - return total - - def test___match(self): - matcher = self.MyTestRunner._PydevTestRunner__match - self.assertEqual(1, matcher(None, "aname")) - self.assertEqual(1, matcher([".*"], "aname")) - self.assertEqual(0, matcher(["^x$"], "aname")) - self.assertEqual(0, matcher(["abc"], "aname")) - self.assertEqual(1, matcher(["abc", "123"], "123")) - - def test_finding_tests_from_modules_with_bad_filter_returns_0_tests(self): - self._setup_scenario(self.file_dir, ["NO_TESTS_ARE_SURE_TO_HAVE_THIS_NAME"]) - self.assertEqual(0, self.count_suite(self.all_tests)) - - def test_finding_test_with_unique_name_returns_1_test(self): - self._setup_scenario(self.file_dir, include_tests=["test_i_am_a_unique_test_name"]) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(1, self.count_suite(filtered_tests)) - - def test_finding_test_with_non_unique_name(self): - self._setup_scenario(self.file_dir, include_tests=["test_non_unique_name"]) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(1, self.count_suite(filtered_tests) > 2) - - def test_finding_tests_with_regex_filters(self): - self._setup_scenario(self.file_dir, include_tests=["test_non*"]) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(1, self.count_suite(filtered_tests) > 2) - - self._setup_scenario(self.file_dir, ["^$"]) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(0, self.count_suite(filtered_tests)) - - self._setup_scenario(self.file_dir, None, exclude_tests=["*"]) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(0, self.count_suite(filtered_tests)) - - def test_matching_tests(self): - self._setup_scenario(self.file_dir, None, ['StillYetAnotherSampleTest']) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(1, self.count_suite(filtered_tests)) - - self._setup_scenario(self.file_dir, None, ['SampleTest.test_xxxxxx1']) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(1, self.count_suite(filtered_tests)) - - self._setup_scenario(self.file_dir, None, ['SampleTest']) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(8, self.count_suite(filtered_tests)) - - self._setup_scenario(self.file_dir, None, ['AnotherSampleTest.todo_not_tested']) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(1, self.count_suite(filtered_tests)) - - self._setup_scenario(self.file_dir, None, ['StillYetAnotherSampleTest', 'SampleTest.test_xxxxxx1']) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(2, self.count_suite(filtered_tests)) - - self._setup_scenario(self.file_dir, None, exclude_tests=['*']) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(self.count_suite(filtered_tests), 0) - - - self._setup_scenario(self.file_dir, None, exclude_tests=['*a*']) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(self.count_suite(filtered_tests), 6) - - self.assertEqual( - set(self.MyTestRunner.list_test_names(filtered_tests)), - set(['test_1', 'test_2', 'test_xxxxxx1', 'test_xxxxxx2', 'test_xxxxxx3', 'test_xxxxxx4']) - ) - - self._setup_scenario(self.file_dir, None, exclude_tests=['*a*', '*x*']) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - self.assertEqual(self.count_suite(filtered_tests), 2) - - self.assertEqual( - set(self.MyTestRunner.list_test_names(filtered_tests)), - set(['test_1', 'test_2']) - ) - - self._setup_scenario(self.file_dir, None, exclude_files=['simple_test.py']) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - names = self.MyTestRunner.list_test_names(filtered_tests) - self.assertTrue('test_xxxxxx1' not in names, 'Found: %s' % (names,)) - - self.assertEqual( - set(['test_abc', 'test_non_unique_name', 'test_non_unique_name', 'test_asdf2', 'test_i_am_a_unique_test_name', 'test_non_unique_name', 'test_blank']), - set(names) - ) - - self._setup_scenario(self.file_dir, None, include_files=['simple3_test.py']) - filtered_tests = self.MyTestRunner.filter_tests(self.all_tests) - names = self.MyTestRunner.list_test_names(filtered_tests) - self.assertTrue('test_xxxxxx1' not in names, 'Found: %s' % (names,)) - - self.assertEqual( - set(['test_non_unique_name']), - set(names) - ) - - def test_xml_rpc_communication(self): - import sys - sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'samples')) - notifications = [] - class Server: - - def __init__(self, notifications): - self.notifications = notifications - - def notifyConnected(self): - #This method is called at the very start (in runfiles.py), and we do not check this here - raise AssertionError('Should not be called from the run tests.') - - - def notifyTestsCollected(self, number_of_tests): - self.notifications.append(('notifyTestsCollected', number_of_tests)) - - - def notifyStartTest(self, file, test): - pass - - def notifyTest(self, cond, captured_output, error_contents, file, test, time): - try: - #I.e.: when marked as Binary in xml-rpc - captured_output = captured_output.data - except: - pass - try: - #I.e.: when marked as Binary in xml-rpc - error_contents = error_contents.data - except: - pass - if error_contents: - error_contents = error_contents.splitlines()[-1].strip() - self.notifications.append(('notifyTest', cond, captured_output.strip(), error_contents, file, test)) - - def notifyTestRunFinished(self, total_time): - self.notifications.append(('notifyTestRunFinished',)) - - server = Server(notifications) - pydev_runfiles_xml_rpc.set_server(server) - simple_test = os.path.join(self.file_dir[0], 'simple_test.py') - simple_test2 = os.path.join(self.file_dir[0], 'simple2_test.py') - simpleClass_test = os.path.join(self.file_dir[0], 'simpleClass_test.py') - simpleModule_test = os.path.join(self.file_dir[0], 'simpleModule_test.py') - - files_to_tests = {} - files_to_tests.setdefault(simple_test , []).append('SampleTest.test_xxxxxx1') - files_to_tests.setdefault(simple_test , []).append('SampleTest.test_xxxxxx2') - files_to_tests.setdefault(simple_test , []).append('SampleTest.test_non_unique_name') - files_to_tests.setdefault(simple_test2, []).append('YetAnotherSampleTest.test_abc') - files_to_tests.setdefault(simpleClass_test, []).append('SetUpClassTest.test_blank') - files_to_tests.setdefault(simpleModule_test, []).append('SetUpModuleTest.test_blank') - - self._setup_scenario(None, files_to_tests=files_to_tests) - self.MyTestRunner.verbosity = 2 - - buf = pydevd_io.start_redirect(keep_original_redirection=False) - try: - self.MyTestRunner.run_tests() - self.assertEqual(8, len(notifications)) - if sys.version_info[:2] <= (2, 6): - # The setUpClass is not supported in Python 2.6 (thus we have no collection error). - expected = [ - ('notifyTest', 'fail', '', 'AssertionError: Fail test 2', simple_test, 'SampleTest.test_xxxxxx1'), - ('notifyTest', 'ok', '', '', simple_test2, 'YetAnotherSampleTest.test_abc'), - ('notifyTest', 'ok', '', '', simpleClass_test, 'SetUpClassTest.test_blank'), - ('notifyTest', 'ok', '', '', simpleModule_test, 'SetUpModuleTest.test_blank'), - ('notifyTest', 'ok', '', '', simple_test, 'SampleTest.test_xxxxxx2'), - ('notifyTest', 'ok', 'non unique name ran', '', simple_test, 'SampleTest.test_non_unique_name'), - ('notifyTestRunFinished',), - ('notifyTestsCollected', 6) - ] - else: - expected = [ - ('notifyTestsCollected', 6), - ('notifyTest', 'ok', 'non unique name ran', '', simple_test, 'SampleTest.test_non_unique_name'), - ('notifyTest', 'fail', '', 'AssertionError: Fail test 2', simple_test, 'SampleTest.test_xxxxxx1'), - ('notifyTest', 'ok', '', '', simple_test, 'SampleTest.test_xxxxxx2'), - ('notifyTest', 'ok', '', '', simple_test2, 'YetAnotherSampleTest.test_abc'), - ] - - if not IS_JYTHON: - if 'samples.simpleClass_test' in str(notifications): - expected.append(('notifyTest', 'error', '', 'ValueError: This is an INTENTIONAL value error in setUpClass.', - simpleClass_test.replace('/', os.path.sep), 'samples.simpleClass_test.SetUpClassTest ')) - expected.append(('notifyTest', 'error', '', 'ValueError: This is an INTENTIONAL value error in setUpModule.', - simpleModule_test.replace('/', os.path.sep), 'samples.simpleModule_test ')) - else: - expected.append(('notifyTest', 'error', '', 'ValueError: This is an INTENTIONAL value error in setUpClass.', - simpleClass_test.replace('/', os.path.sep), 'simpleClass_test.SetUpClassTest ')) - expected.append(('notifyTest', 'error', '', 'ValueError: This is an INTENTIONAL value error in setUpModule.', - simpleModule_test.replace('/', os.path.sep), 'simpleModule_test ')) - else: - expected.append(('notifyTest', 'ok', '', '', simpleClass_test, 'SetUpClassTest.test_blank')) - expected.append(('notifyTest', 'ok', '', '', simpleModule_test, 'SetUpModuleTest.test_blank')) - - expected.append(('notifyTestRunFinished',)) - - expected.sort() - new_notifications = [] - for notification in expected: - try: - if len(notification) == 6: - # Some are binary on Py3. - new_notifications.append(( - notification[0], - notification[1], - notification[2].encode('latin1'), - notification[3].encode('latin1'), - notification[4], - notification[5], - )) - else: - new_notifications.append(notification) - except: - raise - expected = new_notifications - - notifications.sort() - if not IS_JYTHON: - self.assertEqual( - expected, - notifications - ) - finally: - pydevd_io.end_redirect() - b = buf.getvalue() - if sys.version_info[:2] > (2, 6): - self.assertTrue(b.find('Ran 4 tests in ') != -1, 'Found: ' + b) - else: - self.assertTrue(b.find('Ran 6 tests in ') != -1, 'Found: ' + b) Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/setuptools-36.8.0.tar.gz and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/setuptools-36.8.0.tar.gz differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/helpers/virtualenv-15.2.0.tar.gz and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/helpers/virtualenv-15.2.0.tar.gz differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/id-index.input and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/id-index.input differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/id-index.input_i and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/id-index.input_i differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/id-index.input.keystream and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/id-index.input.keystream differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/id-index.input.keystream.len and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/id-index.input.keystream.len differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/id-index.input.len and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/id-index.input.len differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/id-index.input.values and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/id-index.input.values differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/id-index.input.values.at and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/id-index.input.values.at differ diff -Nru pycharm-2018.3.5/index/Python/id-index.input.values.s pycharm-2019.1/index/Python/id-index.input.values.s --- pycharm-2018.3.5/index/Python/id-index.input.values.s 2019-02-26 09:00:10.000000000 +0000 +++ pycharm-2019.1/index/Python/id-index.input.values.s 2019-03-19 14:38:33.000000000 +0000 @@ -1 +1 @@ -Þ™ç¹á¯Û£Í¥ÄÍ÷ºì«êºÿÃè¥÷¿ú¤ãä¨øõÒ¸ÿÎÊåñÖÿÙÖÚÄãÀèôØØíãÄéÐèçÍÞÅâÐÍâÙ÷éò›ßÇñäÀïÃèÔáûÝÓñÒæåàÌäÙÙÎÞÐâþØíÛÛÕòãéÍßÔÑÙЮÍÂíÐÌ“û×ÍëÎÐþ¼ÃÊó±ö½úÏ×¥í—ÖËÙÇöÁáÄÕÞæÏÞÞ׺ÄÐÞ¬ï¦Ø»ÉÃï¡þÁï›äé¨Èùü÷ÞÞéšСõŠÄýÏòÉÙÄàÆåðãÜ÷ÎÒúÝþäøÕñèôÒÒÐÀ¾˸Æ…òõõ´ú£î—À¨òòÕ‹çÙÚÎÍÌù»ÉÌÝÊÙ¯ÁÃúãæÏæ¾Ò¥ØÌÃÛÁÉãÉóßìØð½÷äÙßçÏÎÒèñÆÜÙØþæûÐàÃõåøßïÔÀÜÂÔÔç÷ÀïÛ×úð×àüà×ÞäéØòäÜäïõåêÙÂÝáÝþÎ÷ÒÇíÆÈèÊîáåºî²ÝÚú¯ϵïæåàÀ½ÏÃÞªýÌèÉÓÄÚþȽÀÀáÚÀ¹ÖàéËñÙÙÅøÎïÀΘ˽ã¹ä±ñóÀÂè…ÈÄÔƒõ˜ù¹ÚžПÔ£ã‘ÝÒÕÞ×éÁÖâåäðþÝÖÖççýÔÏÛÜàéÝù±ÖÌ׸÷®׸ï«Ë«˺òÿü¸Àº÷´æ¢è±Ç·ȯبÔ÷ÄãÃæ§ë¶î¯çíõçüÓòæØÉúÚÜØðÎËÑÚÏí×íÛÕÛÔÞëãøØÆßõÒäÕèàÁÅüÕóÕÅ»ìÑô¦ͺÜ»çÆÛ²ý¯çÕÆ·ÉÎùËæ´øùÇñ¼ïÄþËÃÒÒáܯþ¾ôšĽë¼ð«è³÷›íÏ•ÓüìÃäšü§Ê–׿ÞæÈÖûæÙåÖÜçõÆèýÚÔÖÙÖåÉáÝÊžòÌÙÂçàÒéÚÁʼχÛõÔ»Õ•ë—ã‘êÃí½ÙÒÔËÍÐлþÙå²õÀÖÂÂôë¯ùÎôÈØÖíÅÜóçž׈ØøëºÑ•ã˜Ò•ÜÔÑ©ßÛÌÆ÷ÍÔÀÖÕâÇÛ¦ÏÄ×ëÝÍ̹ΨÈÉÎÝßÒçÈúçÅÍâÄÅè÷åÜÎìØÏóÝÂËàËàáäȼÿ×ÒèôàêßÍÖÅØûæÈ·ɳÿÜËôíåëáÏáÇïäîãßåìÖãöÕúÜ÷ÞÃÚæßõÜÐåõÌÆÐÿÜ͸ó·ðÕß°Ö¯Ïéùáå·ÅÆÒÓæ·å¸åÇçÉøƒãÄÁ½íÛÔ·ÄàßÌÃÛÆÇôÉÑÀÚ™À¿Ø·ųøôòÀІëÄË…Ò—È·ç מà¥îŠÒÓíááéþÕ×ãÄïøìÞÔËèÕÒþÞåÖòãâ¿ÆÈ×·õÛáçøÖÏàÿáíá÷ÚÈÕïêàÑõÀÚáàÞÀÝÿâÞÑè×ÌçמØÎÐïáæ÷èïáßÞûòîìÈàÑçßÛíÙÈçâãÜÐòÖáîåÐïÉÚÒäØâ°Ó¾ÂÏå’ìÒýê×Ôí¾æÇôÍÄ­þÆļѯÁ£íÙéÍé¾ÌÈþáûÑíÝ˺ïÌù¨î«ô¹ËÁÞ ÿÀê›ý‹÷«îõåøüáú˜Í¡òŒÃùÀñØßÆÞêéÓãã÷ÛÓäà÷áÝÕîçÂÑÅÝß´ÚÓůí¾Ú©ìÌÿ­÷·ò¸íÛÅæÏÐÁßÙîØãÿÜÍåÁäÕ¶ÃÖÎæîÖÌâõÔõÚàÝ›ÄÐÔðýáâç÷æÿÞØðåâ÷êâêñÔÎÝýÛÏÕäØÂáçÚõÈïÐÌÔé®ßÒã¼üœëÞÐáϾïÂרÒËùÌá¸ÔˆÕÇã»ãÑÁ¹÷è÷ÉéÝéÁÕÇã¹è›ÓÀÚ¾ê©ÀËæµÕ‰ǼÙûè•ßÃÃ’÷§Æ‚ËÇÊÝäßÔìÉÛäâöóïÏâàÛæÒÔøàóÓçÚê°÷ïàÀìÏÜÛʽçÛÞÆü¡å¨Ì«צê«̦ð éÎÿªå¾ÍÆääÔ»ÕÆÂÂþÌÖèæ®ö‹ôûî¼Ê™à™ç–ÊÁêÊýÏÊÈþÐľÜܽԹÜÂõñÝ»ШÂÀÎáç¼àÅêÖçéÁ±àà÷ÛÀÒ÷ßîðÛÒÒàô×úìÞÆÃÏûäèÞáÔéßñÚóÙýÝî˜ÜÖéöËäðçÝåÌàÐòÇãÈäÇåÅÔÑßýèÕØÞ×àØÍäßË÷ÍðÕÅÕÍ©åÊôÃÅ™îâùáÚ¼î¿óØ߯ã¾ÃÃðÄ÷‰äÉí½ÂÔÛ·ëåÀÎÇÚÄÅðÅü¼ÜœÙ½ܹߨÿÖÓÂÈ„ÄÅÔûÇžÞÂÄ“î¤ËšÁ¨ûÔÒßÇìÙÔÚæÈòýàÎÖÇìÅÖÖâúÚþßîµèÝø»ÉÅ×çÊáÙØÕßÿÏÄ×ÐáâËÍ×ÅÊÒÞîÙýÝôÕïàúâÎÝÕÔÁÙãÚäÊñÜàÈÿ¼ÐËÙ«ôÅÌÅåÍêÍÂÍÐÕ¼ê¼ÈÒѤØ›ëÒ×ÈûÇÒëàÜÖν̪ù¦ݹãÂרÄÃךÞ²á†Ú†íâå‹õ¦ï˜ôò×ÞæÙðèåàÆÜäõÖØæÞæÕÊÞÇÊèÜÊŠÒÜÔïç÷ÑùäýêòàøÉèÛÎÉË΃ý‚ì¤ô¡ÿ›ð§÷ýÑ×ØÒËÝÌûÀÒÍðÊå¤ÕÃÔèâ¿êÍÏÜóÇÒÊéàîÒúäÇÍ߃×ÓÉ£×þêøاݺú¤å¡Ôíåæ×ÚÌÈÈð¿í¼ÊÏÝ·õÂß××àè¶ˤÏÉõåô¼ÓËÆØÊèâ°øá÷ÛðÏÁÞßïäÓÌßÄØÔêðÏî¸ÛØåèããïßöÑÎÚÜæö»ÖªüÙÏùàâÃçîãëßâòïãûäÄåÑØÊÛðíëÚ×Ïè×ãíÅÙÊÉÈÒãÙì½ÿ³öÕδè¥ØÜÜäöÅͺÀÓûÅß°ûÊ×ÏËо;÷ØɸþØÁÐçÝÉÊòÁüÏÄ•ä·â»żÕºß÷¹ë‘À‚ß™̱éžÏŸõÝÔ°ÐéÿÜàÜÏäùÜÃùØÑúàÕáÍÙÚéÚÒÐàè¯îÎá»èäãàåÐðÙÔòñËÿáÿÚÓîîÁÑÀíÞÃãùÞðèÍÏÍØûêÞ±ý¶åàÎóããüãÈâïääôÜäÆç×èúÑëÞîëèØÿÒõÕÕéÈÖüÈÓÏòÖï¸ü´ÜÖù­ܳÿâááû¹ýÄõÖü·κïÆèÄùˆëÇÚ¼ðÕñ¹ÏáÛÎÈÚñÅÔÄêÃÀ‘ÚÃû·þ´ï”ɾê‰ôÉþŠ÷’Щß­ýŸÓ¢ÔåÑÎöáÖæÓØàêüÝüóçÌÓàùßÜÙÖæÌÓìÕѶÏÔç©×Ãæ²ÑÁë¤ñµîƒˬÝ¥кû—â»çÛñÏû¼üÏÈ®î±Ñ©À­áœü¤È¥Ò–ÕÎçÆ;ÁÃÇðⲺÄÒëÊúñßµÀÜ÷ãïÐæÞÞïçãËÞòåæâ÷´ÐÖ×ãÍ×ìàÛÕïÚ×ÛË¡ÄÑÙñôãÉåÆèößëïÍãâëäçËÕËÝúÜãÓã×ÜäÀÝþÈëÑËÒè®ÏÒí¼ߟôÝÓáø¾áÂã¨ëÎÛËû¼ñ‹éÈêºêÌüºËæåÊÄÝÚÂøÅÒ·ÈŸü¼Ó½Ð¥ûÄÔ´þŠè¼ßøü”ÌÇúò¥ü„ÞËÎÞÒÜãèòÚÚêñõÐÒëÝøçÄÔãáíØÒÜò¯ÊñÞ·ؾä­æŸΪÆ©øÀ¬ÚŒø¹ÕãñàÒÔÂåÝóÊÈÛáçØéïñ¿ÚÐÎèíàÍÔÃÞâÛêÛáÐä ðÙòöýáÀãòáþæöðüáìêÅëÄÌÚáöäÜÛðÚýÕêâÓÌÑÉãàÛÁƲêÒƺÊÆÞíáõÀÜÂöÒǪËÈõ»æ½õÉËÆÃØÆê¿àâíÑïÛÒ¾óÃöûŸç¼â¼õªÛ¼Ó¯Ò‚ÂÁÖñé‘ÃÎøê§ÙˆØ×ÏáèàÒçÒÛàäÍùÒÐúÜèéÑÕÐßÐÝÏÝó©Ôèá‹φÀ—˹þ¤Ü¡ÖÀèÑØúËÐÇÑÄüØÏãµÐÇüÖéâÏ·à±ÊÎèÜìÎõÆëãôØÔ¾éç×çëÔàÒÇôÊÆÉâåßðåôÀØÈñäÚÞæÜÕâÌÒÐÚüæÝ ÏÂÒäÂîÚðÑÝøäðîøíØæÊëãèïÚÇßÞåÏÙÂÚéØÝäúØàÎÿËÝØç³ð¿ùÔÄœÑÆòëßÐã¸ëÍçÌá°ÅÃÛÉГû§ÇÊæÙð·ìÌáÝíàÅÎû¹áÕæ ̧ÅÀ×¼êŸùÅåןÍœéüú÷Ãô¨ÿ•æ…ÏžúïÇÔÚÜëéõäÐ÷ÙÏÖáÄãñÙÌåÈØÏåÿ°ÚàÅ“ΈÁ‰ÉÂ÷ªÏðôÕÞóÜäÇÜÇäÅðµëÑÑ´÷ÇÞÍÀç÷ÀȪâÍÍÚÓÄÚÇÕÝÒÖƃç÷ú³Ò•è˜ΕìÔ÷§ÆÞÏÇéÎÕÁæÓíÇä¤ÇÁÏéÊÊÇ­ëÉ×ÔðÍêÚÛÄËõÿ·ó×âéöÒÜÛÛââÝþÜàÖÊìÈÛõ©÷ÖèçÿâùÚìØÎÝÎÝäÒá ÌÔÕóòåÙè÷àüÞËóÉíÔÝÍçôäåÖùßíßÛÔúÕåçûàãÎúÇÅæÐÆñ©ÚÐÔ¿ïžçÚÁàõµéÂëÖɵ÷¿ÍÂÆÀøŒþÊý¼ÈÍà¶ÿãÔÎ×ØîÄüÌð¿û—å½âµé²ÃüæÀü†ÏÈð…ö™ú²ŤÞì©îÇÎÈàÊâØØòåÏèÞóÅÐúááåÅÞþâñÒÍÏâºçÐ÷·ȼÔ²ô“îÀÙ¾ø¸¯ã¹ÞÁôÝææÖÕëæÃÏÖÙÕÜÉËÌÕÉÉÕÜæÙ×ßÃ×ËßÞàÈá×ÓÉÙæÚÚÌàÙàÍë¹çÍý©ÆÃÁ¾ÔËä¡ìÃöå¸×ÈÏÃÌÐÑ€ó¶Ù¿Ì×æÆÉÊÅãØÍÛÁÑ¡ç¤Á¿ÒºןιÒšɼüõÀ‡ÇöÅ ÁçŠÓ«ÙÜÝØæéþÞÓÞ÷óÛÖØßöÔ÷ßÇÆÙØð‹àÓîÌÞä׶æ¯èàçäÁÖþæÊËâÚìØßËæÒñÌàÐýßíßÏÚýÜðÛÊÛáÛÈÖùÛÚËÈÓøÙÕ¾çÉÌ®įìÃåÀæ·ƦßßÌÇâºé¾ÒÑè–öêÔàÒäÀõÎçßÝÝî´ç´áœð¶ÔÃæ§ö©ýĘøŽÖûËÐÝÝ¥ì‰ÓÚÇæòÓúëõæÊÛÇòÕáïåúÖËÔÀÏáÜÝ”âÂعð¦ÔÅý³ø…ìôäµçŸà—á¥Öéè“ýÕòÉþÌôÃÌÉÙÊ÷ªùÂÝãðËê¼ФÐÏåÚÆÐàÅÍëÙÌñÇäªÿ¶Í™ÞÆê½ÒªðžÄ©Уé»ÛŠç¼ÑŽΓõŒÏŽÞÆú«ôº \ No newline at end of file +ç²Á›èöï®ùèìª÷ÎÔºô§زɲҤ˻Ȇã¿þ¸Õ´Æ£Ø”ì±à¬è¥Û¥ú¶üäÎßõÑÃ×ÐóÊÊÒáÖØóìÏÁöÍÃéãàôÒãáÕÙÓÜäÖäžÑ×áöàãÑçÛçáÞÂñöäÐåÝçÒÔÂáÀëÎÖËÕ÷ÕÇéÏÏùÌÍÒÖÙÉ­õÈõÆÝ”ñÚÛåó¸éÈÉÓÙ³ø°àÃë¿Ý£ã“ÉÕÿÕ÷ÅÏÊÂÛÍßÐÑåºöÒ͠˥õ¿ý½Ñ¡úÇÚžÕ˜Þ¢ÜûЄèÍئý”Àˆô™ßìç×ÄáßæâáÛöïÔÌã÷æÏÖÆêõÏäÕó·îèÔüáÿé•èÁù Öî‰óÅñÝËÐÅÇÏÎì¼×Øÿ³ÉÂæÃÎúдï¶ô´ñÉÚßÈÔÜÌãáÞÅöÌýºß©ѹÊÆÒèúäðÐóØñ÷ôÂÁêÜÞòçÈÁðÉüâÝàòàîäÿÎÔØÑ÷é¶é±üßùôâãÂäÂæöÞøñçâÑãñåÆÖÎÝðêÅÛÖÏÀÙóêÝßóÉÆÎÿØÛ»ç¶ËÒÊ»ïœæÝÔçÐÉõ¹ÄÑÃÇÄ£óÇоÚ®ö¢è×õÐö¼ÙÆòÞöÔÓÝνÉÆÒ¶ОÚ¾ð¾ŦÜÁÚ´ãŠþúöô”ñÈÇò¥†ÁÍÉÛæÝÖèíÒÅäÏñâåòÕÞæðÓúâÔÚóåøÁòÅü©à‡ýöǰɚ˗ףÌäΔØÜÈÌßÌÌ¿èÉ×ÊЪÏÆÅæÇÏþ½ö¤ÏÉÌåÄ»ÇÊÜÍüðʵðÜÜãéÙÉÛðæÜßøÝï×ôìñÚú«äØÙçêäíÚÔâäÙËÛÃçØ–ÝÈÏëòï÷ìãÞèÝðî÷ñçÞÿîíãÔ×ÜßÖåÒÖæÞØØÈäû×ÿÍýÎ÷Ø÷´âÀàÕÈ›þÂÍèÔäÁ»öÃÅ×í¥í¯åËìÉî†ã¸ñ»ÛÝï²Õ×ÎÕËäðËìÂöÎÔ—ï­ͽè¼ÿžîÂÏšä²í˜Õúí™í´ð¦î‘Âüâ¬ßïöØåÞÎçÞáÿ÷ÀÓØßÐãì×ÏèÐÑääé­ñËåºÀ±ÀÇü°äàÃáÊÑØàçñÒßÇàèçÇâø¸ëÝìâùØüÜÆÛûÛÇÖø¤äÕÍðÁäÎéüåÒßÈíòÝãíÈæÊ×òÜåÚð×ñÓØæúÙÙÇÕÕñÇôàÕÚºؤìÝøæÁ¾ü¾Þ¹ÀÃùÂõÌ÷ŽɦÛÆá×çµòÒÛÕðßíÈÖÂÚÖü•ÿ»æ¸å¸ïšùКÛ¼ÖɌޟý¬ÛŸñ¡ÆØÍÃñáÑçÀÜÏãâçæðÊÒñáÙÔâßÞÜöäû½ðÈ÷»ß ÛÊÉ»óÜåç÷ÑöÞìäöáÕâÝÛßæð¸ÔÔåèÇÛÚæÜÎÄÞïìÔ’áÎÓìØåìèÓàóÝûðÂàúèÂéÈÑÎàÖãÏÓÏÛÚÜàÞÂÈçÔÛÓ¬öÊïÄÜ–úÞýèëÊ˸äÄë·î»îÓÿšÇ–ÓÙîÏÜ¿úÉÃÛüÞèÒß¹ôÒÝžçÆ¿ù½â¡ÃÄÄÂ¥Æàûâ’üÔ©ΖçƒÓ¦ÐêÊßÃáãèäÛþúÑÏØÛïÞ×ØËçøÔüÃìÅó¤ÓˆÌ÷IJÙ˜à•ýÎÞåüÛÚËïËì¿ôÌÏÉç¨óÂÙåîÌοÒ¥ÑÅßáØ¿ÜÆâÓÛôÙµõÞúßÛØÞÞÒåÞßäÛñ×þëÞÒÖ¿ÊáÀáûàçâÂÎÃÚÛéøœßÌÀéîçÅïìàòÞèîÀêÆàùéíåÿÖþÞôçÄÖÚÕÃêÕßÅÉöÔÿØɶ·øÜþ¡ô¾ÍèìáʾÑÄÌÔΧ°ØÉÖÈßö­ÃÆøÚ̸õÖËÖåäâÉöÅìÓî”Ë´ÌÀÛ½ï—ï½Í›À·à”öûé˜έÕ¢ê˜öç²ÅäòÝðÞÄìÖÝÊôôÍÏâÜßü×íåàÕËÇíÄÿ«è‡ÿôî±ïŸø—Ð¥Îéå’ÕÕúÈÓÍÂÀÏÉÑÊùªáÈÝâÝÏ×½ù£îÄÓàð¹ÑÊõËûóÙ·ñÛÊæìØøàÄàÚßØÚÒÙíêáÕâ¾ãä×ãÄßÌäÉÍÊ×ÚéÅ¢ÜÆýçæéøéÚßçÝéîîëøÜúëäãèÖüÞðåÞ×ýÖÁåáãÔËóÒÌÛø¶Ë·ýÙϨã¶úèøãü¿ÿÁáÖÿ¬ЯæÇíÆý—ü¥ìÑÊÔí¹ÞÎôÜáàÓË˾ÊÏß•õ±ƼäºôÑÁõ™õ³Ô–øúâ›ý²î¥Ý’æùÀ°ÃçÿÙààÁêÌÛÀö÷ÔÞàÈáÃÖÃêõÕäÊÙ¿ûÍݨéÆÈ´É…åõµÇ¥͘ߧÎôÚŒá×ÚÎ×ËÒºÆÊáÊß­ëÁÿßéÎß¾ï¥íÉÍÞÑÇçÇêÚþÜÓºüãðáìÓæàËôÏÉÙáÖÚâôÆÆƼçâÔäöãöâæÒøÛåâØÊéŸýØïùÁäùåÓâÁãÆòâéòÞúêßáì×ÌàæäÆÕÛØôäúããÐÎÇäÞÉÈäªóÌìÄÜšÿÚüâô¶ÖÈôÒòµÕ®ÔÃýÁè›ø›ÉÐåÔü¼èÊÅÜÉÞçØϹáÏɨÌ¥éºìÃˤËÂú›ÿà§ÿùá÷ØßòšÖ¡öŠÂüëìêØþàâßïæáøÅÒëáÉèóÖôÜÙÛÓàÉÀÞÓݪå«þ§ë¶ãûÁ¹ݲà¤ú¶Ï™èýÒô‘Ò¿ùœò™È“÷ÇÁÕÕÌÐÆÎÎͼàÚ϶ûÁÉÃÆðʽè¹û¯ÀËÛÝÊÕèÊÅâÎÑνöèäèýÓÊÒüôÝÂøâôÞöèãÀàÉùâÏáÅäðãøÌøØÛîÙ¶ã°ØÛÂóÞãßäÛèøÞôôÌäîãåäí×çÜÚëÁÛéÐí×ÑëñÛÓËÜÏ×Ùì½δÃÓ÷ºÔòà÷äß¼óÂïÔ÷¨â®ÔÍÛÊÀ‡иç»ÆÝè±éÕÅÖÏãÅÊÉ¿ýÒï˜é«×ÁÙ¹çœøÂÞ™ñ±Æ›ÏúØè¶ѧó‘é€É­íìÙ×ÚÞõæÇâÒ÷ÈÐàßýâÛÛÏèýÔÁåͯÏÞË•ú·Ø¥ܲõ•ȸ×âüßÙÐÄÜÅóÅÍÔÞéÔÄìÉÃûËÀæôßßÜÄá×ÜÍ×ÉâדìÖîòâãóæÞäòßáòüæèäìäÚÙüÜæèíÙÛÒøÖøëíÒóÊÇÐìØç®ÎÄõÐדíÐüæõÀÀ»äÐÜ¿ö¥ÄÈå¼ã®ñŸ÷ÝÒÏè¾ÁÉâßÐÔÝÚô½ÙÍ̧Ê¥û»ÞÀù ñÁ÷›ÎȪâ÷ãøÚßö™ü ù‹÷úÜð÷ÖÀàúçÇãÈöÇÑèàÙâÉÖÝæÎÏÜÝë´õéØâ‚î‹пәĚè•ä¿ÀÇÛÐÙÆíÒñºÒÜë¿ÚµýÂÄïþÈÁ¶ûªïÈÎÝõÍüÅÞäÕÌìÂïß±øù¶ä¾ÞçÀåÈØÒßâÏ÷×ÕÝÉÍðÔÒÉåÚÀÙöÜÁÕÄàÇáÞáëÑëØñÙüÊôÚÔÎó¹ÀÍÅ«ÑÃøÀÊÏÀ¢×ÀõÔã¹ÓÃÛÓɨÕ˜ÖÄâÄú»ôÐÎßêÚÒ¹ΰΞʼâÆà©Ö´ÈÁ¢ÙÉüúÓÞ‹á¤Ñ•åãáãêÕøèää÷ØÜôþÜØàÅ×ØÕÿÍêÚê’áÚðÁüéÞäÓøá¶â•þ˜ô–Ã×ï¢çäéÆÓÏÁÁÏÐÁÈá¦ÍÃÙëØÊñ»å¥çÆâÜÀÀÿÌé×ÊæÁÏð´ϬǼôÄËêÕáÆØÍÚÿÎäØêáÖËóÖàÊÛßêÙîÜÿÔÀááãæÝòÒêÙò×ùÊÙàßÉó¼ÆËâ«ÃÄ÷ÄßÍôŸàÃÉÐê¸ì¼éÒë¤Û›üÒÄÉѸÀÒñßéÕú¼âªù¥ã¹ÃÅ÷¨áÃÞšÓ²ù†ý…ÒâöŠì¦À™ÚòÙÞÄÚöåôåýÚéõÑÛÂàùÖÂÛÄÊÄäîŠäÜ×ðÔøÑùðüåòÉøÆèþ×ÈûÑþÿ–Í¿ʤןèÛÌÃÜßËÃÃÓÉ÷»þÔü¶ÅÅüÂøþô°å¸ý·ÕÇ×ÕÖÔÚÊÒçÏÉéãó·Ù‰Þ¾ï±ÍÍèºÈ©Ϊ˹ߣö¹þûâ’ø±Ä¥ôºøþÞ³ú·ߪåϥÝýêùÿœñ¿ð«ÕÔöýÞëÝÍÇÌÃÑÆàµñÑÞ´üÉÀËÂîõã³ñÀìÌÔÑÌÖÿËÐîòÓðºÚäÆâÒÔëÑÉõÝÙÂÙðæéÐíÆÍäÊàêÓèÜöÓÌèõ»ã°âÖïòÏàæãÀßÐéÔñòØæíÒçÉØùÜéÛðÒëÖÞîßÄÉÏøÞí¼ö³óج޵×èÌÑý»ÓÉÌ´λÝÚÇÒ¡þ×ÄÍÃÀýÈÙÝÏÒóØɽÆÐî£à¦ê»ËÃÕ¤ÑÌážÊ—ô¢ÆúÍúá×Ý¡õ›ö„Ü•ùïêÝñíüäûÝüõÚÔËÝòáþ×ÆçäÔÊÉüÁùèÚ°ÚàÆßîÖËÝøòéÞàÞÁåúÙòºÌáÜßÕÓÁãþ×æÝâÐù ËÕÐóÓâççõáùãäîÞÞøëíåßÙûÙÍÞËØÅÔåçÄÒÛÈÉÙåÃù¶ÍÓͶÿ¨ÂãöÙþÀòÆð®ÓÀÜÓÛ³òðÇêÀÔÂâÈêÝÀÕÞÞÒ¿ÆÇݱÇ¢âºÖÂò¢î·Ì›ØûÍîňÉÙÈŒШÍëâñíÖØëÝãáÝãÝõêÐÀáÅáÁÓþæôÐÖØÕµÀèÅüúÿê”øÀÿ ñ›ø‹ËÇóÞýÔÐÄÊÍνÄÙü·ûÁýÂÇòÿ½Ù·ã´ÚÈÛÜóÒÖÌÏáÊÄØ«éùÿ²ýÖû¹ë•Ôýý¬ñÙÛ¹ѲÚ¨ø¶ÛŽò°ÿÃìäèåÐÜòÏßÐðÕðÜæÌëÕËÎËÜÎßýÞ÷ÒúÛìåòÞÓÙÕÑÏÝÇÏãÓîÇå¼êÈô­ؽð½ÞÐÓßÑüÙÁ±þÑÁÎí¶ŠöÆͼàÌõÐÞÎõÚÇÀÉËی޸ɷ÷·ö÷ÖÃþ„ÛÃÒÚáªòÃÏ£ÿ–ËæõÈüÙÌÙãéÏáúìÿçÃØàßçØÙÝòÑнë£ÄÇí×ðãâºõÃÛÝìçóÖêåîÍÿØÏÜýÊäÔêÌÅÜæÚúÜÓÙèáãÛâßÅÐòÛÒÝ×ÈôØëÐë¸ÆÔǨÙÁí¿ÿÌÄ©ÿºÙäÞ½ÒÆÿöÕׇײ÷½ÞÛÊÁÎËÃéîÐí¾ý£Ù¥Ͻå½çüÒÚ¹Ï÷ÇŒÒ÷Ӛӡ뉟ÒÜÅØÙêîÞúßêö×ÙÂàùÖòÝÀÉÆØÄ„ÊÎʯú¯úÂߘë‡Ùúç¶À•ߘÈ•ÕÔÒ©ÂÛÏÇêÏòÀÈÓòÇÞ§áÅýëøÏì¸å§ìÇðØþÀòË÷ÙÙÛè²ã·Æ©ܨÖ‡ù·رþ³ð‘ \ No newline at end of file Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/sdk-stubs.input and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/sdk-stubs.input differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/sdk-stubs.input_i and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/sdk-stubs.input_i differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/sdk-stubs.input.keystream and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/sdk-stubs.input.keystream differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/sdk-stubs.input.keystream.len and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/sdk-stubs.input.keystream.len differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/sdk-stubs.input.len and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/sdk-stubs.input.len differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/sdk-stubs.input.values and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/sdk-stubs.input.values differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/sdk-stubs.input.values.at and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/sdk-stubs.input.values.at differ diff -Nru pycharm-2018.3.5/index/Python/sdk-stubs.input.values.s pycharm-2019.1/index/Python/sdk-stubs.input.values.s --- pycharm-2018.3.5/index/Python/sdk-stubs.input.values.s 2019-02-26 09:00:10.000000000 +0000 +++ pycharm-2019.1/index/Python/sdk-stubs.input.values.s 2019-03-19 14:38:33.000000000 +0000 @@ -1 +1 @@ -ýòÔßëõøïÚÝÔéËåè÷ãåÕäüÛÍÓËùÊÚåíÙÜìÉðÛçæûÊûõÿìƒÂîÁ÷îìâå÷؆òñôŽÏ‚ƈßðÒõÖüöñÑìÎáÊáæàßóöÎÔØýÍ̸ïÐíîÉêðáäÎáÏáâÿåÅ¡åÙÇ©ïŽéšݼÿ’â”ûŒþóÏ¥зË¡Úéçæÿ®Ìï‚Û¥ΨǤÔµý­ö¡Æ¢Çð’ìŒÿ¢ï•ñ©εô¶ê¡Û©é”çêõ©æžÙªô°ä¢ʬÉæé¨ö£ÓŸÓ‹å©ìµݦÚ¤ü ó£÷µé”Ïå‚È¢þ¢ä ܦô¥ì¼Õ¬οٜۜþ“Ü£í³ÉÀѺþÃÖÃ×°æîÅù„Ǥÿ°×ÇŸé–Í”þûó¤ÏïÁßí¤¨î³ç¯Á˜è÷û•ȯÿ‚ÿ‘ÌœâœÑ°Û–å’Êjà[ä¡ìè¬μå¼ÀìðÏò¨û–ý†Øæý¤þˆÏ…È®ߢÉ­è³ñœÚ¤í§ä«çöŠ‘É–Ì´ó£üžè¡Ò¼äÀö£åµÜžĤҨќì¯Ëò¾שÏ«Æ•Ì„Ú“âÆôÈÎî‰å‹ÙéÌóÀúý¤Ƚó¯è©ÂÀÀ½óÛìÏöä‘åÉà”ò­à¾ÃýøæÃñ÷üò¡ÞºÑòší¼Еÿ”ìŒøóø¥Õ¶Ë¡Ûéäæü®ÑñÁ¥Û¨ÿ£жí­ò¡ä ÀŸô“njۢӖö¨ö¶â¶è¢æ«Ì”÷çÏ«åŸò©Ï°Ë¢û¬÷æݨû£ù þ‰ñ¨϶˦Ò¤ë¡ò¡à¶Ä”ÊՃšףàۦ˥˾ã¬ù¿ÏœËõ“ç£ͲÚÀÛºÉÄÖÃõ¯÷ÏÅØ„ó£ã±öØŸû–è”ÁýÊ¥ÄîþßÚ£ݨÁ²ö°ü—Óøà•߯Õ„ÞÕœלü°Ò–Ú’ñm×[ޞ垬輺æíûÍå¨Þ˜ü†þç٤وӅý­ߤû¬дôœ̤קòªÊøЈË’Ö•ê¶Å¢çŸ÷ ¼ÄÁÖ¤ÞÉð¼ÝŽ×ôÉåÚêø÷ïáÈðÊÔËÜ…ÝêìÕÿÈÅÞÕîÓÑÜÖÓæôæÃþÀîÚâÁæääÿõÉêüâÈäøÙËôÓãÚõÁ×ÿÏÚðÓîìöÐõðõÏäÌãóøüÚùäÈãÓÝúïÈâêô÷ÒÂÏÛÖììÙýÅ„ü•ÅúÀïöõã…Ùîñìæ±ðø‚÷²ô¹וÈ¡ÛŸÚ¨é¤÷´î®ýšè©Å®Ú¹ù³êôéŽÞµÜ»ç©åŸߨßêÓªÒ¦̱ʪÛ¨õ³ë²Éœõ¹â‹í—Òäñ‡Î’ȯô¦ìº÷ÄòÅ׸ÐÄßÃIJï‚íÂ҇ɣ֧é”É£î¤ñè·õ»ªʈä¢ûýö†á¥ïœð™ÒßþQÖ9ð’ë´è±ß²ý§ïÊÆŽòˆçÒ„ß®è–í–î¯åžû°ñÕ©ͬÑ£ÆÛŽƹá¯ìžÍÄܼΑÊ’ôöȱáÈ÷ŒÚìÚÙªþªʱí¤ͬõ²ú¯™Ú°ê¯ñ³ß®ÿ¦ã‹Ç“è¢üôîÏЕЄîçÊóÞøø§î²ÅÉø±Ìæóñÿý÷¾ä¯ý‘ÝÉLJìðÒðßúÞ¡ñ°ðŪРμè–Ô°ׯýµä¨É£ÎŒ؆Ö¢è†ÎßÝöò÷þïèîé÷È¢í®Õ®ê¹ijÑÀò®çìÛïÞøØ¿î²ÕäÌÓõÛüÙöÝóÇͱé§þ“îªô°Ù‹Úˆí„ç€þ©å¶Ê îûì¹ѦÞ›íÿÓ›é ƬѪ¶άò¢â ë¦ë’Øëå“ö«ë´áµħÌ©וÄÞÏ¥بþ¡é²ÖŸ̳÷ï—ÚžúªÃŒÖœð²Í·Õ˜Ú¨áßžè­Ê©ò›äƒù˜ú–ø™Á³üÊ·í¹ѱõ­Ïœã›Á¨À¢é¸À¿Ü·Ù›ÎÄ×ÆÚ¯ÕûàŒ˺Ïɪ”åšʘò“á‚ÉûÙ£ØîôåȪ̦ûà²ñËöâžø¬ÐôĎݣƟİӓߗÿAÐ\å½ü˜È­â¼ÜÀÃáñÔ¬Ô”õ‰ÔÝô«ãˆÅ…úªõ¤ϪÆ´óŸñ¥ñ¤ðÓúëøó“ǘÿÃÿç¦Ó“÷»ùÂʲò®ÄŸø‰عƯßÂÅøÙ•ݪù»ÞßÙÜÕõ¬ó‘çÿò˜Цú¨ò­øµÌ©ù£øöÍ•Ó“ó®øÕ®ƳijêŽ÷šÝ›îù§Å›Ö«ý°Æ¥Ù§ÐáƤ΢Ø¢ú‘ÄžÒ³á²ÿšØ©ýšОԴƢ̓Êþèè¥ø—Ò°åšñ¼ò°ä³Ǭù–÷˜̨á«ÛÂÌÁÉ©ý¦ÚÆÊ¿éœÐø÷§Þ½ÇŠèÁøôžÚŸÒ•Ó‹Ùì†ÌêЇâ¡ÉœÖºóµþñ…ê–ÒªñÿƃǨ蛺Ȓî€Â%ô[Øïç¤įÿ´ÿÀÿÐúë©Ë“à‡Æéã¥ä‰Éï¬БËÂò§ù¡Ô˜õ²ЫÂæÚ–ýô’î¦í¸ÑŸÞ¥нûÀÖ¤âÇÖ¸Ú’òùùéüîÈùÍÝÕïú€çÏéÿÚçÀÞÊõðËÂê×ÛûÓïŽÔ¥úŒïµê³þƒÀƒý÷Ô•ä®Û¯Ú›æÄë¥Ï™÷ü՜ޭñ¢ĶÁ­ñ§Øžì¨Óç’öŸЧÌ’ð¸Ö¯×±ò×ÂŽɪý²©ø—¯é®ô©òûÑìŸÖ©ì‹÷ŸÔ´Ô³ëñ¤äŸå¯Á¤ðšÏí™æœÑœî¯Ó˜Ê»ѱýºÖŸÌœíРЯ÷ÃаÄÍÞ¿ɱÏ‚çµÁ™Ì£ÿ°îõžÑ›Õ“þÚ¦ÉîÂÙǜʮȯäªÑ¡ÈøÑŒѳèŠùŽÍ›á™ò¬Û–ߟàˆÇSÚŽð›è®ø¶ø³ôƒöÄÝ£áÝôÆöΛɌߓÀ§ö¥Æ£ϸÀ£סù¥Ñ°ØúÏøÑ”õ—ßÁÇ“à£îœíºÿÀèé‘ï¶ͺå¬úŸͽâ’Á²÷ô‘÷‹ù·À®ʤîƒ×ßÍ„ÊöðíËïûùÌñ­ÚËÏ¿þ³Å£Å·ïÿïåñöÁŒÇ—Ûè£õæµÅ“ú°Ö£ç¹ý¨ìªÒ—ã„û—ØýõëèôÔß×Ìöãñà™Á˜̵ë®ÝÀöÃʱòèâðÉýʾðôþÉΈÜðìï×üߟó·Þ¢æŒÒ³ä·ÛýôˆÀüýɪǽá›ôçÇÌþ©ö‘øûÔ›ý£ΫЩè·÷§ï¢ãÔ¡é’Éä¬ê‘Ö®Ͳβë’ü¤ò•çñÀ§ÿí«ä±ÿ¢ö¨ûäú Å¡Õ¥Ì’øŸÆ´ü³É¨éšÔ±Õ¤Кà‚ì™à Îœõ°Ô–á»ú²ݲæ äžôŸá¤Ó°äÅð¿ó¡ò¬ÊÎĺó‹Ãùç¬˧ß—ß»؈÷œÂÉ”ì‹ó’ÌõÁæÜ•ø¦јȹñ¨ÄÁ–æ•È«ïþöŽé£Ѥí©ò¢ÏØô>×@ä•é§ð¶ø²ð¶ÇÉÁüô Å—ðçÿÝ•â‡Üšý¦Ú•òÅì«Óœå›Ú±ö§ÉØó˜ÖŒØŠöœçÕÅŸü§Ç¿çÀå£Ø©ì£Åô¬ݾ‡Û§ø›ò©ì£ç³ë­é›ãªÙ¯ȸñ²Óìó‘ú¾ö½ç¨ÖŸƤÊñ˨æªÿ­÷®Û«ñ®DZé›ü²í‘è•ùùð†Âø´Í¡ý½âÅüÂè¼åÁéÆó²Û‚è¼Ãü øŸäšãœÿ¥Γ̸ɪòÛ†Á§Ôþîߣë£ë¨â ëÐÞXè5׬ó´å´Ê­Ô£è¿À™܉ȈÄ誓û™É®ê§ô°ÿ¨Ç«ô©í¥ö“ã˜Ï·è§à«õ¾ó»þ‹ÙŒöîÖùøˆãë܇ÇÌÑʾþÝÿ¹üºÛ§¼Ÿö½õߪΠòÀÒŽÕ«À´÷³ü¤ò¢Î’í’ÉÆàïóÁïá’ÁôÉóýú›ƼÝÀßÁíòõü‘ïÈ˔ݮò»Ö…ðçüïô‰Ü™ó”Ù‚ÀúÈ£ßÅó•ÍîÉßÚ‡öÔûÌÙÙáÝÑä΃þˆí­Ò¡Á¾íŽþ¶à¯ý»É¥â£ö“òƒé ƇÓÚØôìõûðôïÍýߜƫå­æ¹ɵè½ÕµÎòÿðÁô˿ոÌÚÈøóá…ýõäóìÏ«Ï«˘ÿ¨ųàŒìë‡Çû§жû Ò‹Ï©ù¡þ°è•ïÿ˚ʥܩù¨Ƕø­ÛÜ¡À¬Ö…À‘ð¥̤Á”ò¶ÿ´ä¢ð§Û–ÔÞË¥ø¬Á ð´ÂÖ³ìôì–Оƪó˜É’ñ°dzþì¡îžÜ™ÿžå¶Á£Ë ×ýã›ý˜á›Æø£û·ɳײǽðãšæ‰ü©Å®èÆ÷¸óÔ»ÆÍƽ÷ë߃øÀæ€ã¢ä²ïÆŸÈšö“àƒŦÆëÐÜåœЦɬë§í¦òþù”üœ˨Ñ„ÊØ£Ƨاé¥áÇÒOö3Îé§ѲÚ´ÿÂîÑÓôö¤óŽýلٓñˆä—ΣÚ›íÂÀ¨Ú™÷šç²ò¦ÑØΙÁÁŒÚžàÌ䚣À»ÃÂѰ֮ȟí‹иÔ²ÁŠÚä÷Ï–ä¨û½÷œÔèùÈÅ­اÄÈŽÕ›ªï£Û²ΰÅ«õ¡ï Ë¢ϘÛ†Õ¬é–Ê¥à²Ø­Ì‹Óñ—Àýü¨×ˬñ±ñ¤Õ¦ðáÕ«¢É¡Ó‘ÀŸϱî³Äšâ–Ü£ñ£êÞµæžÛØ‚Æ é¨ûˆí­•Ò»Ù¸À°ù®Ú¥˜Ö“ɤжÞ¾å¼Ï–õÇþÅɯÜúùŒ˺åŒü§õ•à™ü™ò”Ñ‘òõÆ¥Þïêßó¦Ç¥Ô¶Æ°ä™ÆùÇDzÙŒçû˜âšý®×™ÊŸð‘öVçÕ×¥ù·÷ªí±óÄñ†Ñ¢×úíŠТóŒøäŒˤîªÚ­ö£ë¦Î¥ЫÁ•Ä×ÿ¥Þ˜Áøщøéó ñ§ê½ÐÀü¢ÌÇ̺òÀöÚíÆöòøÒßíåúÿèÖöéÖÕËþûÏòëëÞúÏéâàüþâÞêìøâÕëôÌðâÊä„ôåõãùÝÀÆïÝÞðÔÊ÷ñæ¹ð¿ߦܤã³îœ®ôáÕ“ö¸È©Ë Ó‚ßÖÒò€ÌæÜñåþÑù±âÉÒ¿ý­Ú¦Ù¹ÝþÙêóôäӛϴø—ó—üµÑ‚ÆŒó‡ú€Õ¨À¹î¥Á©Уæ¥õ‰þãŸñ­ЫùµÔ©é¢Úžø•þË•ú¨É“ê¬ù³ʵðÿç“ʞėú§î›ï¦Ô²Ú¥ÄŸ÷ñþ¢Цѧñ…ë¯Õ¶àœÛ°ϘÓ§ó¸ù‹â’Ãî˜Ì”ê±ƤÔ²ã»ç±ö«Ò˜ǘë¦Þ¯ÁÄø£ÍÒþ¼ú¹Û—â¦Õ¾òŒÍÂä†Êœüšâ•ìŒÉÄúÓäø–è¥Йñ¶جσß•ï›ï¨×ýó‘É£ç¥Ì©É£óÏóL÷4Ìžô¤õ·Æ­Ù³ÉÅÀ€Ï ÞÑ‹äˆàâŽã‘ýœϬɺЧü¨ý¡îþ•ÛÖû£ú˜àóû‰ãõÊ¢ΣÁÇç­ûªûñüèÍüÚýÂÄÈõÊçÜÛå÷èêäçÅìàÇÐèÈâÖÎÀêÏàùóîèéÚÑÏùÐÿ«ßîïØÝêýåõÏÍÉÈåîßÌ©ÉÉè¸Âî™á·âòŠãŠììͫ׭Ųѧô—ß“çæÛ‹âž÷©ߤÀ·ç¯ý§ɦÿ À•ãŸÒ˜Þ®ù‡¶ÿ±û´Çñáƒù«Á—Þ«Зû­ñ±ĨÉœÁëå¦ŦÂ¥öŒÿ§ô¶ǧОƦÄ þü´ïœÄ—Èá ý¤Ï êúŸ´àµÿºÄžÑ™û˜ý£éµÜÄûºÉ›úÀÒÌè»÷ëЂÅÂÒ‚Ú¦Þ°ÌÖ À™Ë“ÓÿÕªÇëëÙðÖ¬À¯Öªâ Ø÷ØŠó²ÏÂÞšð™Ò®ò˜çßüVŃÇœè¯ÿ¶õ°Á‘õÀϘäÛöîíï‹Ôšã‘ó¦ê¨έù«Á Ó©À©æöÞÃÇ òâýˆü„Á¡Ê¥ÂÇϯà²Ò“ç À«ü±Ôžåªì®߶٦ɣ׈àŒúŸöýÒÚÈŠöøõëÓïçùОö´ЯجÑÐ͵ë›ÑôúòÞ˜íÇõ‡Ó¿ã·ÌúÕé×óÐŘñ»Ñ‹Ñ›è·êÑñ‰úõì¡â®ǬݬûÒ˜Òº÷“݈å”åžã¬Ì¥æ¸æ«ø¥ߟäªÌ”ð¡Æ‘Ó°ãÈ°õ³Ø­ÂÝÿŠÖ§ؤìîůÙ®ð§ÓîøÛ¢ê©Ú¥Ï‹Þ©ì¶ɧÛΛÜȟü«æ¨Ãœë’òÓ™Ô•ʤÓ§ͨï·Ë­âÀÌŸÓ›΋ɧ˯þÃè¼õœزüйæïô‚Ĺò×¢ƲþŒØ¡Ýå–Ê„Ý¡ëì×äë™À¨áŸñ¬Ó­Þ‚Å–×–ë«Ûýðí¡ͤì«ß¡åâÕ2ñLχÚ£°è¹ÆÇüÓ×çú¤Û›ÝŠÂõù™ÓŒÌ”é©ÄŒæë͗ӖдÓ§øâñ˜è“Î’÷ŸÛÁИÅݹúÁ˯϶ð•óžä­Å£Û£ŤË´ݲö¦ÕŸüèšÔ èöÃÐó”ЃóæÜòôüÌ¢ç¼ù®ô¬üÍÌ°õüõ÷ïí íÇÿ…Á¾û«ëˆýìâõâ–ä˜Ç’ôªæ¥êÂψ۵ƫ۵ü¬Πà˜Ø„ï˜ê€ôáðþ×ãîûáöèôÊ›üŸïºÚ¥ìÄÇÆö¬ìæÀòî‡ùÅä©è”ÌÉ×àñëðÔóÒ§ÿ¹ÚŸñŠܹÏ­÷ŠÇ€ßóî™ʧø»êŸôÖØØê¯ƦÞŒçŠû¢Ó«ܤý³Á¯è©ù ê£לî–׎ü«Ã’ݪé±à®ëÚ“ôô‹Ê©É á§ø°É¥ì¤Áäþ¦ð¦ëΕð›ü²å³â›Ó“Û¦›£Ó¹ù˜âìñŸæ©ð…߯ïå¼â­ù¯Á«Å—Á˜Í¡ì¬ÙÀØÁÞ©ö¦ÕÇØÀó‘æûã¤÷±òÓÀӇߜÁšò”ùÕÆ…èéֈʠã›ȹ÷·ÚÕûßœÁ­ïúÌ‹ë¢ÇŸó°Εï•ü0Ø^úÎïœÔ¦ݾã³ô…óÅú±ö’úˆÂÜú­ÉŠØÏ­Ä£ð¬û°Çœý Ü¥Þ°ÉüË÷Ì“ú™ùÆäûÁ¬þ¢üÃî¼çŽÑðùàÌ…ýðé×ÏêüäôíëìþäïÝéÜðçàâÌöÚÕóÍÄÕÍîæÿúÍúþÄóÁïÞˆííðé˨Þé¨î¢ã°í´ÕØ«é˜Ñ£Þ¬ô¯ñ¥Æœà¯ƲÙ¸ì¡ЦøœÆŠ˺ݧ̦ÞûÞ”éžÔ®õ¬Û¨ë°ÿªʦÉ«Ø ÛžôäóÙ‘Þð¯ùØÍÛ½å·ûÏĽÒ¸ï®ú”à¼öË°Ä‘ÍžÞ¦Ãô̧æ•ì¹È¥جÙˆ׬åúË÷¢ì£ô§ê¢ìÂøYé6ù²ð·Ó²Ô®ÅžɺÊ¡ÿ…É‹Ö—ЩΌٟåªá«бÀ¤Ö«ݬå¤ðœè˜èµݤð°÷ÂƸÛé†ÆûŬúÉ͘ËçÞÝÒ·Ü—ɧ¡Á°ò³ΑèÛ–ý¤Û§÷·Á¤Þžî®ǵÞ³æ­è©Æ¥ïöÿ»þ¨æ£÷‚Ç‘Ížã¬ñ°ÿ¥Ü®é¯ä¨å¦Ê¢óšЉÛÔÉ™í±àšÜÇÐÄý»ÝÇǽôÁè´̃ð¼æ’Ö¥Àú¤÷ áôç¥Ýó·üºǪÙˆá£Üýÿ†Î¥ùœõ¯õ˜ÇßòRÉ9Ç”ä´ê±Ò±Ô¨ÆÊñŽôˆÒè„þ®â–ø–ê¯ÈŸõ°ܱÙ¨Ĭä£íœÅŽî¹Å°ÜŸëÃܼï¹Ò°äºÅ‹Ê­Сô¾èÖµίè»ö¤ú¢ç’˃Æ¢ćÚÚÄóúôýðÛïÐüïá«ü¬Ǻǵ̽ù´àñäðïóå¿ý·êŒÆÉêóá„ùõÜòÙží…îøèêÊöôîÄ÷øÝéùÙÝøÛØØÛüìØâúõÆÖÒÐØÖñíùÿãþÙ‰äïñÈñ׉ÞíÓìûöèúôßØîöæÅéçäÌùëÚçëõàÎÉõÿçÓÈãöàõÐÑäýâÊõ÷ÙïâÀÏãØñÉùÓøÊóñÀâÌàÀßûÅúàËÜý°ÈÃÛôÜèÈðùÓáâäïäùõÞïÍçðãêÔòÍØãÊôãÊ \ No newline at end of file +ÑÙüéüÛÿôÆÈåÚùÌÙ«þîØÖêâåØÕÎõ÷ÇÛ÷àÚÒѲÓÙÞÊËûïüì…ÊŒÐóÍø÷ÎóôùÀëÝèâäþÿíûÞÏÖ÷ûàÈåèçÆñÒéÊßçÆÊçÞïúÉÖæÆÃòùí÷ë„ø“ãþÀìÌýù÷ãíÑìáòÜÞÃôéîíÛÿèÈåíö×åìãîÝÝÓÞúÌÚöîþÜÖÊÛ¡í¢ÿ‰ųÜ´Á‚ä‹üýýŒá¦ȹÊ¡ÍòêÀݤÚšØþû”À¡Ó«À¨Ç´Ä®ÙžþĨü‰Ą̃÷™ߤõ°׳۬Ѵú’ÜÆĨÞ¦ó”Æ®ç©ÕªÇûï‚Þ¢ë¥È¥ÄŒô§ç³Í£ÜžÊŸ÷¡לü´Ä•ɘ؃øžå£è¢ð§ôâ´û²ؼÄœàšë–î¦ïÑÅÀ¸êõ§óÂѾù¨ôóË–Õ¶é‹ðã‘÷œà›ù‘Á‚×øýŸìîæåâªÅ£ë¾õ°è‹þùךÏ«óùïŽ÷žÅžæ®á—æÖ\ì[СÇŸà¬ã¼ɸÏøËẸ́ؠÜúòðÄ›ã‹ò‘é¡â¦ó ܳ٬ȡà©øªÿŒðÞÒ Û ÇÛÓ‰ø†è›вÖÂÜ°á§Ðüªò¤ÞÂå‡ê¶ä­ç³ò«Ì ЗÖ„È™áýóáßóÒàÍ”ÿõÌóé„òœÛ¼Ù©ıõ«ÁÅþ±ÞÿÛø÷óä¨óÅö…Ò½é¶þòëçÜô׌ì—õÛîìÛÿׂÚŽûþÆôßðû‡ãíÖëܪáÔ‹ñ·÷²ú‡Ê…ëûñŠ¨»ïŸø÷À¸ó¥Ϭù“ðÿ•÷¢ù§ù¨÷³à­í Ì›åªóñœÞà­ÝŠñ¯â±Ê«ÛÝþ‰À§á¢é«žÝ©À­ШÝ™ïïÀ¦û£Ò£êŠâžɲÝ®ö›ÕŽñ¢ØŸåŸà´Í›ÐŽÂæ ö§ôˆЭú“í¼à¹ׯ÷°Á¥Ç•óÀ¡Ô´Ô¿ñ¹ïê«ñÁä¿ÿ‘íùø£û±æŠðÁÂ…ÐÿšÛ˜äˆÏû׎ãìÌþË Ìží¾ß°ÕÇøÇ™Á¬Îûߒ̙͜ı÷•ДþoËVå—ÍŸô­ò¶â¬ñ¦ÛÃö’Ò¤çïâýÙÏŠÈ™À’ɧ̨ü«à¤ï¤ʨÍ«Û•×Ùô¢ãœèñÀŠîíãŸë¦ɾȽÏ£ÿ±Ò™Òžá¬âû£î¨ŶǮӧéžòƒÀšÀ ÇúæÕÊŠÉúïòÊññøãŸá¨ý·ýµĤñ¸ÑÄá­Óæïñâ‚пñ±èŽÜÈÜðÑŒúöûðýá§Ä°ù›øœÓµ߇Åï…øýÌŸ׳ò¥ë¨ßä§˶ý’ã„đߜӫý¡ñµü¨ô«Ϥçšó›Ç–ÖŒî¨ì’ɧæ±é®É…Ô™À›„Ú§ÛØ©å°Ä¢ð¤÷ä©Ïî¬ÿ…ò›Ô°Û²Ä™ÜŸöœÌšÐœ׳Ì¢ó›Ñ‚þ™ô—ݘä›Ϩö­ÒÁÚ¡ï›ÛŠÍ£ëüÅ˽æ˜×–ðÀÁÂɱÓù͈ɹñ‰ú¥õšý—èÊ•ÿ’ûöõªòìòßòÀ­ϲñ¨ý›Üý܈Í«÷šî‰È“Ù¡øªä¡ä¨ȽÕSÔ7ß›˧é²Ô³÷ÃÈÒàóþ¤×Áăê’Ȇö™ð¦ΔÞçЗÕšû³õ¤ßÜå—î‘å‘ÔœÁÉý–å éºæÁدÝ»Ǻ÷¶Ú©ë™ä¨Ù°ìŠø†íƒÆ„ŪÁ»Ƥò¥Ÿó¥øƒçç¥ë¦ñ«û±Ð¥ã ð›ø”ÞœÁ”î¦Ð’Ϊ׳Ô±÷„˙ԛîè¥ÃœߢɳÄ¥öžñìΣå¤ç¢ú‰È­ß·ýžÖ©õšŦܳØ‹è—áŒóŸïß±ý¨è©í¹Ù°Þ½Õ›÷–Ê—þ¢çµÀ»ÿ½úÀéÅô±ÍÄ¿í†Õ¥Ü­ÀàžÀ•ü”øúÀ£ÒïÊÞÿ£í¥ò³Ý°ÖÆ÷û•Ú®àƒÉÝœà›À±ø•Ï•ßqêUñ—㞪â»Å·óúäÇÇ£àŸÖûËðߚ͊áÜ«Ý¥æÒ¶Ó¡î¥÷£ç¯áù×øå“ê–ïÀɔƣØï»ËÀÔ§ôÆÌ»úµÁ£üŠî·Á®ÛŒñ‚óõÚ–ůú­îšñÂä¤Õ˜ÖûΚðªê â²á­ñ åšå¬ùß“ðšý­Û†ù±Ó³á²Îíňñ¤ç£ì¬Õ™תç­ѧñ’îüÞ ß©ΤÔˆú²Ç·À™̯ì•Ú¢Æ°ï–üòŽû™Ù“Ï´äŸË´ð¶Æ·ÿ¨å›ì›î¨Ç£ñ»Û¦ëÐļϹԳ؊͹ý÷­Ê‘ËœÐÑ”ð„æøå›ÀìÕùý¡ÀŸí»˸ÝÏùé›å¦íÿê…ã¨Ë ñ³õæ’û'É_ÇÖâ—ø®í¶ìÆÑÔõßÖ¯éŠÛˆÐâç¯߆ÇÿÒ·ÁàÀâ¦ߣõ—´׬úáÁ˜ß÷’ö úÂÊäÁ¾ð½ø¥ï§ö­ó¡ô§êžâ«Пè½ç¨Ä«ï“È„Ç’Ý‘Ä÷ÄÆüáŽùèôñóòå ä¯óò¶ã£ú½í¿ýŸøéÙôìŒÊÊæ§ΔÔÈýùÿñåïÐýþšÞ²á¦È‘ã­å±ëŒü„ÀˆÜÿþ¦Ó³÷ŸØŒÞ¨РÓŸé„öôœþ­Ý¢ô¶תù£çžÖ©óŽì“ߦÆ¡Ϙæ±è®â®ò×ãþ©ó¥è¨Æ—Õ¬ƪú¥Ò”Ññê¥å¢û¢òŒÈ¥سã¨Í–ñ¬Û˜óžì²æžñË‚ÖŸé§Þ˜Á¯ß—úÄÓ°ÿ¯Ù©ßê˜ù¥ϯÒÀÿÀלì‹ÝÅÈÄÍ»ÐëÁÿÛÄþüò¤ݲ÷ŽÚžîšÎ’ôƒ˦ÝìòÝãœÀ§üªø¨Í¢Ø€ÃŒÍ¥ÖŸ׈ò“¡Ê«ã¡Û¨üºñTü8Åžħç¸Úªè³ûÄâÿå ÏÕŽÚ†Þ‘Éî–ü¢ñœÃÆó©ãÑšå±̧ÏÚÁ™ÎŒâˆøšæØÞžû¤ü¿ïÀÇ£õ¨÷¬Ù¢ï§ÌŸÝ«ùŸæ½ç¨ϬÓØ„ÿ‘å”øõâÆÆ’ÌŒìèßñêòÏ ÿ¯سêµˤý½ý¾ã øêùôÈŒÄÊʨÆ“áÈÃúéòïðëüÍ›زͧó’ë«ä±ñŒï…ø‡öþŦųß Ëð§ïŸðŸÜ…ýߜ˭ʢý¶çªç£ÇŸï¨ÒÖ“ï¦Ý é˜Ò²í®î®ö×܌ۨä¥ø§ì—ä¬Ôªæü“÷ñé¥ë¢á¢ñ‹¤Á´ú©ý”íÌ™üžø²ÉŸÛׂÆ¡ó§Ϙý®ÿ–àÄü°Ò¯áªÍϙަì¯Ó¿ÊÁԜӋÃÆâÄûºèêêÿÛÃÇÿæ¥Õ²ÕŽ÷žïšò‘æ„Õ¤ñìùÞÖ›ê¦ÔªÀ©å¢Þ€áŒŤï ׉Ã’è¡Ç«å¡Ǩ÷½ÍSÏ7Òžɨç·á«Þ´âÅöþÙ¢ë‹ÜŽö…Å’ì‰Á—ê¢ê›òÅÕªÕñ™Ò±å§øÙט÷‹ê‰ý›ÔÖÌŸÕ§ô¾îÀõ¤ËÃಸ“ñšέÚ­úžó­æ°ȯë¤ô¡ã‡Òÿ¡øþúÛÑ€ÄõìñÎñÒôä¡ò¯ÿ®Òµ÷°ß¾ë¯åçÒðùýü¼ý´÷äÇÜñâ‰õöæñùÊ«ñ­é™ѧå³Öˆð‡ä†Û€ΟߵɟüÕÁ£ý¶Í•Åÿý‘ÿîé£Õ·Ú©ͧë¤îŸÉ›ð™؉ì©õŽÅ«À®î¯ÔûɤÓÐ¥Ö ߥþ¯ܤÒ¢ÄáÜ«ÿ è¢óöÀ°ϳÿ—Æ¡ÙšÀ˜æý´Æ¡øŸÊþÑœó˜Õ›îØ¡ï´ɳѲÄ´Ȥï“ÐÔ¢Ù´ó¿÷ºþ‘å¨ðÂÊÁÆ”Ðøô£ĵЇÛÂÓ„ÄŸáö˜ö†öúÅ‘ØìÝûî âžËÀÕ²øŠú÷Þ—ϬéÿÓÅšÞšÒ²à•íšðuÐVñ’ýð­Û¶ΫͬÅÂÂŤéöǀŞóŠêšÞò¤åªí®ê¤̦ݨÛªä•ý×ê¥ã˜éøÖ‰ßéÙ î§ѽë½ʤúûúèàëÚñûáÞêËãÜýöÙÒéÄàØÉþÿèÕèâÙáØÑåÙ÷ú×ëÑòðûÄÓøâéÜÙ÷úåìëçåÎÅÏêâÓôëÌâÞÞ«ç¡Ý£Û§ß›é¯çžó»ÓªÞ¬þè‡éþ™éóíÎÝ–ׇÏèýð×ôùí¯ǵü±è¤ø»Õ¿Á¦âçõóý‰ÉÈê§ø“ßÈËøä÷Ìóæ÷Û›Ò®þ©ú“èªбÀŽ‚ì€õ€á¦ä³ÀŸè–öž× ×´ñ”Þû‘ʤã©ä¥æµâ©Õ¤ñá¨Ô”Í Ú‹Ê«ýø«Ô­ä®îõÿ„ުёõ¦ÖžÂ¥Ʋê¤úùéǨæ¡ÏŸÌ’òÓ°ϲϘòšü›žÖž÷¯ë¡å“á‚Ý›ð Å›ü™Ïø¹Ê´ç®ܯÏ¥ë˜ö’ß¡þ´ð½î¸öŽÒ²ÌÂì»íŽïøæ¥ʨÙÀ¿ö‡Çœö–Ù“ÆŽÄ€ø…Éêú†ÆŸóœÀºå´öŒÉ÷ýŸá«ßöáòœôú¯ò–úÞ]ö[à ìî¬öµȲûžÒÆÛšæ£üóÊôÅžËæ—јÇ©УÝ°û§ÅŸȪÑ©Ê‘ÆßÛÒ öäˆíúÁ¢â£ÔÀɾó¡Ó÷ààÅòÜ÷æÁéòúáñæçéñèóÑÊØÄèòØÜööØÖÍå²ì›ñð´íªÐŽâ€Õôç—̨ӺݟêØ×Õíçäùà–í£íªݨȶá©Ú Ç¢ø¡í•ÈŽÔ©àŽþ«â±ë²Ë¡Ó«ö“×àó¥é¦ØŸÑ´ÇœÁ³ÿôÆԜϩߪç‚ݮֳëÀŸË¢é™Í¢ܸÊ—ÓŒќç–ÿ«Ǫæ©ã³Ú´è³Ñ¢ö™ÈœÉŸé´;á¸ûŽ߯ñÂÝÁö•Ë÷À©õ¹Ù‡èÂæƒäžÙœÏ–ýŠôþÿ‰òèâ„÷ áœмá±ôŽØûÅšƧ÷ÿü„˨òŸγäÉ”ö(Û_ðÐý—Ä®è¹ÇÃúÛóÜòªñðˆçÜήá‰Ì€Ьñ¢Ï­é²ÁŸö¦Ø¥¯þúùøõ“ݘÝÅÂà¥à’Ú¼ûÀì°ŧщȪÍŸÖ¾Ö’ê³÷¯Ù¹Ï¥Ó¤ï•ö…ܛڄöÕëýÿíØöØ÷ìóÄ“â™ÖºŪدαÒ¿äºþðÆð×ûîµÎÃÞ‚èÈݘÒŒÃìè÷î”Ü“×ïÌæþüÖñÎÞÁìÕæûí×ëâéÏíÅÏóÉäåÂìþÐÄäç©ý¢øŒЫܽææ¤ð›í§ã¢ù±ó«î™ì¦È­Ì·á¯õóëòµò¹ù¨ÛħÈèШ×¥÷±Ó¦ê§ì±Ú¯Кá¶Á‹ø—êÅñ’åšÏ¢é«ɲùÄÁÆȳÏÌüû²ȃâµîœüײÉÚ“ô¦ò¡ò¥ʼÌ¢üã£æùò€é®ÁŸé¯Æè„á2õ`ÏØð®þ¶Þ³ûµÄïÀ‰í÷Ó…çéÓÆæàÌ©ï¥Ö±Û²ÚŸë§õ¯ï•çˆð±Ʊð¬×ÀÆÁò¡ï“Úá§âÛöîØüíÞÖ˜Û“ö”ɧâµÓ±ç˜æ¬û§É»ü¨í¬Å’߆Åšó†üÔëîðóå—ÃîêöîòÜ¥û´â­×µâªÇÆò«É—çõàñùŸåÆþÊ´Ô¿éøæëÝïÉúÙ£ЗÒüЊø‚É‚ÁþÐùúòÐóòƒÚ©õžåÌ«ý¹߃ù¡Ýšý¦í ÀµÝ«Ú™Ü©Á®ý´È°äëä‘ý¾̼ø¨éœ΢ÕìۧӦǭþªקø°ø°Ö™õ·îˆè–òÚÖ‹×’бÛ§Ù¸ÉÃîÅÓ¶ÑÊôÀÝ°ý„ã¹ÏÅ¡Ù­ò”ô•î¥Óœõ¯ö½Öžû„ï£Èýîýá®Äð³ïŒ÷€À+åXùèÔ¬ã¸à³Ù±ûâ܈ßýÞ‰Éîà¾êšÊ‹ϱˣϭø´Ô¤ú¦ø«þ–ÄŒâ¶Ê­ߤöÃ÷¿á¥ÊøæúÄðàŒÛìäóë³óÎðŠÞסèÃÈË“á½ׇÌ­Ú ä½ÏŽö·õ®Å»ê§ë¢Θà‚ú›âÿéÕæÿÊåÓÿà÷òóËݘÒ¹ô«õ®ʳξõºððçïâþÅ°ÎÂû‚ÖÄÄ¥å„ñêÚõøó”ù‘ë„ìúÜ›ÁÂÀÅìÝçÈÿæÕåËðÝÈ×ÁéÑÓÔàýþÒúÛúÓÍêáüÁŽúâÚøðåäô×èÁÓüÄÇóòìâÚäÞóÄæêÜÃÙâÙùãÝñÕÔïÓÒùÒæóíóíýäÔçÕßÚüÅÜÿççàÇÆæÿåÙÕãøáóÊÞàÀýÆêíóö÷êØâòËòáËÒ†ÞçñäÔïãÍÐçíéÓÉïÿì”ʨݶÏ°ð˜Ê­á¥Ô¸Í¥ǬÔÕ„àœôˆçÙìçÓ÷ã˜êëÜõÜóê¨ô²à­ƸÜ©ñÆÍ­ÁœÈôÜóÔ˜ÞÈã”à¯ËÀöõòîÚòÞòä£à˜×»׌Åš̶éÿÓ˜â†ÞüÚ¢˺üšò×ÚÚ¦ÊÄ„â¡î©ä¢ѳ÷©ó¢ò Ì ÷õŽü¡Εä¦æ´Ƶú¥Ü©ý”ñäÆ«ÉŸϤÁ±èŸÓ¯Ñëءܢġގí¡ì¶ÿ¨å¡ä¡ÉžѲàž÷‹ÿÿí£ï¦Ó˜­Üšø¸î­¾õœÒ˜Û–þ¡Û¶ä½òºïÂ×ÄÈ°Ý€ÞÄèÖ£é²ÕŽßð•Þ”çþã©ÐíàßΟÝ©÷³É°è˜é÷íé³׆êŒÒ›ç›Ê®ã•ÖœÁƒïT÷üšë®ëµð³LJßÆûŸí ÿòÅúÑ›à‹Ö•Ñ£å¦СÚ·ŤèŸö¨ã¯äýÐîý•ìšöÇÄ‹Ǥà–òºýÁúªÛ¯ت—ô©ô±ì„ÓŠê‚üˆû©÷µë«â©èñ¢ÆÍÉ¥÷¤é®Õ®ô§Ü¡Ñœ“íÌ’ö¨ë­í°Æ´ÏþÛ“ûžÞ—ù¥Ûšˤ÷±ä¤àþîÿ¢ý¤ã¤ñ‡ê¯í¶íž÷ªæ˜̶̧ɇÔ’äÄÀ“Þ©Ǫͪ÷µȵÙª—øœñ§é¤É¿Ú¤ÆÒÛ½Þ·÷­à’׸ÞÔ°Ã×›á ê˜ý‚Òûí’Äí÷þúŸÉžï»ú·ÇÍýà›ë¥÷݆è¨ןþ¶ËŽæˆÃ(ç_ÿÚÿ™ü®íµúÆÑÔÈåÍ«æŒÞ…Áå÷¬ʈÓ†̳øÎÀØ«éžÍ—ö³˧çáÆ–ä’ú‘ÉœâÉñ÷¥ݼѾì¥óŸÖ±ʤÕªÖžÔ§Ú£Ͻñªå¨à“ú…Ø“ÇŒýòÃÎí‰÷‘íèõõØ÷éý°õ¯Û¸ý¡êÂåºÒŸÝêÏõõúÊä¥ΙùÇìüÊñþïâýûžüŠßêæïÁæãÕÛÚùÐɵåØÐæêêÅæäâÝÅæèÁÖÒ¶ÌÇíÑûöÏÖ×ôËÊÐÙÓÐ×½öÌÜîãðÔâÒÔÌÊÆãÝçÆŸÅÖâíûåçƒéîýÜéìÌæùíÚëåèÆíÌÑÃÈÝåøíðÑàæþ©à¢ÔŽÛ°ȹÈ‹ñ¤Ê›ö¦×¢ÿ³جË™à§þ¬ú¸ù°íùæ‹Í°жĪÅžïªÄåިƥϰݣü¦ð´ôªþ›Ö³ÐÅÍÊܘÑ ë•î®ý«ÿÌû¿û¬ÎÑ̽߸ò–ק¼݈ÍÀëјô¢äýàª×ð³ñ¨Æšç”ç éƒÁ—ó¡õªä›Ë©Ò£íXûYÕ³ײɹýªú˜Ä«ÓºÑûÓî­ѧù‡ÅžÞ¤Û±ò³æ¦þ£į•ëªø’гÙ¤ò²ä¾È´þŽÏ‚Óùà¨ÌÅÛ™ììÊÝعä–ô¥ö Û®бÕŽò¦Á•ó¤Ö¢Ú·¢ëœÞ¬DZÒ³ú¨Å·ð üëô¼ЦÛžçú‚ý¤ç©ê®Ê£ó¨÷ªÖ¦Ùžß²ÁŒì”ŒƊ֎ϷȔÓÃéÄÜÇÞ¶ÞÈÿÀʱçƒö¿ùˆÞ¡ö­Ä–—í€Ûœñ£ù¦û¾ñ¥Úûã¦Îøø…Цßžõ­Æ’üŽá4ì`û¼ë´Ú³Å´Ç»ìýÞˆûëÁˆËãèÊÈ‹Ü‘Ʀò±À®ò­Ížþ©ó¯Õ˜ÊŽÚ²è¶ö©ê¹ãÂͯý·ß¹ñ£Ó±Ü¡û¨øŸܧû¡ܽáªϨÑ”Á„Ø’ÜŽëõ÷ÉîŒÚ‘çèÇôïõóžè°űè·Í£ØÀŽŸØêüôòŒÎÊʦ÷•ãÇÁüÃñòïþþÿ›͇åüÿé÷‚àïûÅùøÑæÇÛùôéèêâÍåÍòâÓñûÏÙØßëâåÁûËóÇÜêìÐçóíÖëþè×í×ÓÚÆÍåÏîÕÑ \ No newline at end of file Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/sdk-stubs.names_i and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/sdk-stubs.names_i differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/index/Python/sdk-stubs.names.keystream and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/index/Python/sdk-stubs.names.keystream differ diff -Nru pycharm-2018.3.5/index/Python/sdk-stubs.version pycharm-2019.1/index/Python/sdk-stubs.version --- pycharm-2018.3.5/index/Python/sdk-stubs.version 2019-02-26 09:00:10.000000000 +0000 +++ pycharm-2019.1/index/Python/sdk-stubs.version 2019-03-19 14:38:33.000000000 +0000 @@ -1 +1 @@ -69 \ No newline at end of file +70 \ No newline at end of file diff -Nru pycharm-2018.3.5/Install-Linux-tar.txt pycharm-2019.1/Install-Linux-tar.txt --- pycharm-2018.3.5/Install-Linux-tar.txt 2019-02-26 09:00:10.000000000 +0000 +++ pycharm-2019.1/Install-Linux-tar.txt 2019-03-19 14:38:34.000000000 +0000 @@ -14,24 +14,24 @@ ./pycharm.sh to start the application. As a side effect, this will initialize various - configuration files in the ~/.PyCharmCE2018.3 directory. + configuration files in the ~/.PyCharmCE2019.1 directory. 3. [OPTIONAL] Add "{installation home}/bin" to your PATH environment variable so that you may start PyCharm from any directory. 4. [OPTIONAL] To adjust the value of the JVM heap size, create - ~/.PyCharmCE2018.3/config/pycharm.vmoptions (or pycharm64.vmoptions + ~/.PyCharmCE2019.1/config/pycharm.vmoptions (or pycharm64.vmoptions if using a 64-bit JDK), and set the -Xms and -Xmx parameters. To see how to do this, you can reference the vmoptions file under "{installation home}/bin" as a model. [OPTIONAL] Changing the location of "config" and "system" directories ------------------------------------------------------------------------------ - By default, PyCharm stores all your settings under the ~/.PyCharmCE2018.3/config - directory and uses ~/.PyCharmCE2018.3/system as a data cache. + By default, PyCharm stores all your settings under the ~/.PyCharmCE2019.1/config + directory and uses ~/.PyCharmCE2019.1/system as a data cache. If you want to change these settings, - 1. Open a console and cd into ~/.PyCharmCE2018.3/config + 1. Open a console and cd into ~/.PyCharmCE2019.1/config 2. Create the file "idea.properties" and open it in an editor. Set the idea.system.path and/or idea.config.path variables as desired, for diff -Nru pycharm-2018.3.5/jre64/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/ASSEMBLY_EXCEPTION 2019-01-29 16:01:04.000000000 +0000 +++ pycharm-2019.1/jre64/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ - -OPENJDK ASSEMBLY EXCEPTION - -The OpenJDK source code made available by Oracle America, Inc. (Oracle) at -openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU -General Public License version 2 -only ("GPL2"), with the following clarification and special exception. - - Linking this OpenJDK Code statically or dynamically with other code - is making a combined work based on this library. Thus, the terms - and conditions of GPL2 cover the whole combination. - - As a special exception, Oracle gives you permission to link this - OpenJDK Code with certain code licensed by Oracle as indicated at - http://openjdk.java.net/legal/exception-modules-2007-05-08.html - ("Designated Exception Modules") to produce an executable, - regardless of the license terms of the Designated Exception Modules, - and to copy and distribute the resulting executable under GPL2, - provided that the Designated Exception Modules continue to be - governed by the licenses under which they were offered by Oracle. - -As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code -to build an executable that includes those portions of necessary code that -Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 -with the Classpath exception). If you modify or add to the OpenJDK code, -that new GPL2 code may still be combined with Designated Exception Modules -if the new code is made subject to this exception by its copyright holder. Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/jaotc and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/jaotc differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/java and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/java differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/javac and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/javac differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/jdb and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/jdb differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/jjs and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/jjs differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/jrunscript and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/jrunscript differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/keytool and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/keytool differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/orbd and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/orbd differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/pack200 and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/pack200 differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/policytool and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/policytool differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/rmid and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/rmid differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/rmiregistry and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/rmiregistry differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/serialver and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/serialver differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/servertool and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/servertool differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/tnameserv and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/tnameserv differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/bin/unpack200 and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/bin/unpack200 differ diff -Nru pycharm-2018.3.5/jre64/conf/logging.properties pycharm-2019.1/jre64/conf/logging.properties --- pycharm-2018.3.5/jre64/conf/logging.properties 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/logging.properties 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,63 @@ +############################################################ +# Default Logging Configuration File +# +# You can use a different file by specifying a filename +# with the java.util.logging.config.file system property. +# For example java -Djava.util.logging.config.file=myfile +############################################################ + +############################################################ +# Global properties +############################################################ + +# "handlers" specifies a comma separated list of log Handler +# classes. These handlers will be installed during VM startup. +# Note that these classes must be on the system classpath. +# By default we only configure a ConsoleHandler, which will only +# show messages at the INFO and above levels. +handlers= java.util.logging.ConsoleHandler + +# To also add the FileHandler, use the following line instead. +#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler + +# Default global logging level. +# This specifies which kinds of events are logged across +# all loggers. For any given facility this global level +# can be overriden by a facility specific level +# Note that the ConsoleHandler also has a separate level +# setting to limit messages printed to the console. +.level= INFO + +############################################################ +# Handler specific properties. +# Describes specific configuration info for Handlers. +############################################################ + +# default file output is in user's home directory. +java.util.logging.FileHandler.pattern = %h/java%u.log +java.util.logging.FileHandler.limit = 50000 +java.util.logging.FileHandler.count = 1 +# Default number of locks FileHandler can obtain synchronously. +# This specifies maximum number of attempts to obtain lock file by FileHandler +# implemented by incrementing the unique field %u as per FileHandler API documentation. +java.util.logging.FileHandler.maxLocks = 100 +java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter + +# Limit the message that are printed on the console to INFO and above. +java.util.logging.ConsoleHandler.level = INFO +java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter + +# Example to customize the SimpleFormatter output format +# to print one-line log message like this: +# : [] +# +# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n + +############################################################ +# Facility specific properties. +# Provides extra control for each logger. +############################################################ + +# For example, set the com.xyz.foo logger to only log SEVERE +# messages: +com.xyz.foo.level = SEVERE diff -Nru pycharm-2018.3.5/jre64/conf/management/jmxremote.access pycharm-2019.1/jre64/conf/management/jmxremote.access --- pycharm-2018.3.5/jre64/conf/management/jmxremote.access 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/management/jmxremote.access 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,79 @@ +###################################################################### +# Default Access Control File for Remote JMX(TM) Monitoring +###################################################################### +# +# Access control file for Remote JMX API access to monitoring. +# This file defines the allowed access for different roles. The +# password file (jmxremote.password by default) defines the roles and their +# passwords. To be functional, a role must have an entry in +# both the password and the access files. +# +# The default location of this file is $JRE/conf/management/jmxremote.access +# You can specify an alternate location by specifying a property in +# the management config file $JRE/conf/management/management.properties +# (See that file for details) +# +# The file format for password and access files is syntactically the same +# as the Properties file format. The syntax is described in the Javadoc +# for java.util.Properties.load. +# A typical access file has multiple lines, where each line is blank, +# a comment (like this one), or an access control entry. +# +# An access control entry consists of a role name, and an +# associated access level. The role name is any string that does not +# itself contain spaces or tabs. It corresponds to an entry in the +# password file (jmxremote.password). The access level is one of the +# following: +# "readonly" grants access to read attributes of MBeans. +# For monitoring, this means that a remote client in this +# role can read measurements but cannot perform any action +# that changes the environment of the running program. +# "readwrite" grants access to read and write attributes of MBeans, +# to invoke operations on them, and optionally +# to create or remove them. This access should be granted +# only to trusted clients, since they can potentially +# interfere with the smooth operation of a running program. +# +# The "readwrite" access level can optionally be followed by the "create" and/or +# "unregister" keywords. The "unregister" keyword grants access to unregister +# (delete) MBeans. The "create" keyword grants access to create MBeans of a +# particular class or of any class matching a particular pattern. Access +# should only be granted to create MBeans of known and trusted classes. +# +# For example, the following entry would grant readwrite access +# to "controlRole", as well as access to create MBeans of the class +# javax.management.monitor.CounterMonitor and to unregister any MBean: +# controlRole readwrite \ +# create javax.management.monitor.CounterMonitorMBean \ +# unregister +# or equivalently: +# controlRole readwrite unregister create javax.management.monitor.CounterMBean +# +# The following entry would grant readwrite access as well as access to create +# MBeans of any class in the packages javax.management.monitor and +# javax.management.timer: +# controlRole readwrite \ +# create javax.management.monitor.*,javax.management.timer.* \ +# unregister +# +# The \ character is defined in the Properties file syntax to allow continuation +# lines as shown here. A * in a class pattern matches a sequence of characters +# other than dot (.), so javax.management.monitor.* matches +# javax.management.monitor.CounterMonitor but not +# javax.management.monitor.foo.Bar. +# +# A given role should have at most one entry in this file. If a role +# has no entry, it has no access. +# If multiple entries are found for the same role name, then the last +# access entry is used. +# +# +# Default access control entries: +# o The "monitorRole" role has readonly access. +# o The "controlRole" role has readwrite access and can create the standard +# Timer and Monitor MBeans defined by the JMX API. + +monitorRole readonly +controlRole readwrite \ + create javax.management.monitor.*,javax.management.timer.* \ + unregister diff -Nru pycharm-2018.3.5/jre64/conf/management/jmxremote.password.template pycharm-2019.1/jre64/conf/management/jmxremote.password.template --- pycharm-2018.3.5/jre64/conf/management/jmxremote.password.template 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/management/jmxremote.password.template 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,115 @@ +# ---------------------------------------------------------------------- +# Template for jmxremote.password +# +# o Copy this template to jmxremote.password +# o Set the user/password entries in jmxremote.password +# o Change the permission of jmxremote.password to be accessible +# only by the owner. +# o The jmxremote.passwords file will be re-written by the server +# to replace all plain text passwords with hashed passwords when +# the file is read by the server. +# + +############################################################## +# Password File for Remote JMX Monitoring +############################################################## +# +# Password file for Remote JMX API access to monitoring. This +# file defines the different roles and their passwords. The access +# control file (jmxremote.access by default) defines the allowed +# access for each role. To be functional, a role must have an entry +# in both the password and the access files. +# +# Default location of this file is $JRE/conf/management/jmxremote.password +# You can specify an alternate location by specifying a property in +# the management config file $JRE/conf/management/management.properties +# or by specifying a system property (See that file for details). + +############################################################## +# File format of the jmxremote.password file +############################################################## +# +# The file contains multiple lines where each line is blank, +# a comment (like this one), or a password entry. +# +# password entry follows the below syntax +# role_name W [clearPassword|hashedPassword] +# +# role_name is any string that does not itself contain spaces or tabs. +# W = spaces or tabs +# +# Passwords can be specified via clear text or via a hash. Clear text password +# is any string that does not contain spaces or tabs. Hashed passwords must +# follow the below format. +# hashedPassword = base64_encoded_64_byte_salt W base64_encoded_hash W hash_algorithm +# where, +# base64_encoded_64_byte_salt = 64 byte random salt +# base64_encoded_hash = Hash_algorithm(password + salt) +# W = spaces or tabs +# hash_algorithm = Algorithm string specified using the format below +# https://docs.oracle.com/javase/9/docs/specs/security/standard-names.html#messagedigest-algorithms +# This is an optional field. If not specified, SHA3-512 will be assumed. +# +# If passwords are in clear, they will be overwritten by their hash if all of +# the below criteria are met. +# * com.sun.management.jmxremote.password.toHashes property is set to true in +# management.properties file +# * the password file is writable +# * the system security policy allows writing into the password file, if a +# security manager is configured +# +# In order to change the password for a role, replace the hashed password entry +# with a new clear text password or a new hashed password. If the new password +# is in clear, it will be replaced with its hash when a new login attempt is made. +# +# A given role should have at most one entry in this file. If a role +# has no entry, it has no access. +# If multiple entries are found for the same role name, then the last one +# is used. +# +# A user generated hashed password file can also be used instead of clear-text +# password file. If generated by the user, hashed passwords must follow the +# format specified above. +# +# Caution: It is recommended not to edit the password file while the +# agent is running, as edits could be lost if a client connection triggers the +# hashing of the password file at the same time that the file is externally modified. +# The integrity of the file is guaranteed, but any external edits made to the +# file during the short period between the time that the agent reads the file +# and the time that it writes it back might get lost + +############################################################## +# File permissions of the jmxremote.password file +############################################################## +# This file must be made accessible by ONLY the owner, +# otherwise the program will exit with an error. +# +# In a typical installation, this file can be accessed by anybody on the +# local machine, and possibly by people on other machines. +# For security, you should either restrict the access to this file except for owner, +# or specify another, less accessible file in the management config file +# as described above. +# +# In order to prevent inadverent edits to the password file in the +# production environment, it is recommended to deploy a read-only +# hashed password file. The hashed entries for clear passwords can be generated +# in advance by running the JMX agent. +# + +############################################################## +# Sample of the jmxremote.password file +############################################################## +# Following are two commented-out entries. The "monitorRole" role has +# password "QED". The "controlRole" role has password "R&D". This is an example +# of specifying passwords in the clear +# +# monitorRole QED +# controlRole R&D +# +# Once a login attempt is made, passwords will be hashed and the file will have +# below entries with clear passwords overwritten by their respective +# SHA3-512 hash +# +# monitorRole trilby APzBTt34rV2l+OMbuvbnOQ4si8UZmfRCVbIY1+fAofV5CkQzXS/FDMGteQQk/R3q1wtt104qImzJEA7gCwl6dw== 4EeTdSJ7X6Imu0Mb+dWqIns7a7QPIBoM3NB/XlpMQSPSicE7PnlALVWn2pBY3Q3pGDHyAb32Hd8GUToQbUhAjA== SHA3-512 +# controlRole roHEJSbRqSSTII4Z4+NOCV2OJaZVQ/dw153Fy2u4ILDP9XiZ426GwzCzc3RtpoqNMwqYIcfdd74xWXSMrWtGaA== w9qDsekgKn0WOVJycDyU0kLBa081zbStcCjUAVEqlfon5Sgx7XHtaodbmzpLegA1jT7Ag36T0zHaEWRHJe2fdA== SHA3-512 +# \ No newline at end of file diff -Nru pycharm-2018.3.5/jre64/conf/management/management.properties pycharm-2019.1/jre64/conf/management/management.properties --- pycharm-2018.3.5/jre64/conf/management/management.properties 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/management/management.properties 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,302 @@ +##################################################################### +# Default Configuration File for Java Platform Management +##################################################################### +# +# The Management Configuration file (in java.util.Properties format) +# will be read if one of the following system properties is set: +# -Dcom.sun.management.jmxremote.port= +# or -Dcom.sun.management.config.file= +# +# The default Management Configuration file is: +# +# $JRE/conf/management/management.properties +# +# Another location for the Management Configuration File can be specified +# by the following property on the Java command line: +# +# -Dcom.sun.management.config.file= +# +# If -Dcom.sun.management.config.file= is set, the port +# number for the management agent can be specified in the config file +# using the following lines: +# +# ################ Management Agent Port ######################### +# +# For setting the JMX RMI agent port use the following line +# com.sun.management.jmxremote.port= +# + +##################################################################### +# Optional Instrumentation +##################################################################### +# +# By default only the basic instrumentation with low overhead is on. +# The following properties allow to selectively turn on optional +# instrumentation which are off by default and may have some +# additional overhead. +# +# com.sun.management.enableThreadContentionMonitoring +# +# This option enables thread contention monitoring if the +# Java virtual machine supports such instrumentation. +# Refer to the specification for the java.lang.management.ThreadMBean +# interface - see isThreadContentionMonitoringSupported() method. +# + +# To enable thread contention monitoring, uncomment the following line +# com.sun.management.enableThreadContentionMonitoring + +##################################################################### +# RMI Management Properties +##################################################################### +# +# If system property -Dcom.sun.management.jmxremote.port= +# is set then +# - A MBean server is started +# - JRE Platform MBeans are registered in the MBean server +# - RMI connector is published in a private readonly registry at +# specified port using a well known name, "jmxrmi" +# - the following properties are read for JMX remote management. +# +# The configuration can be specified only at startup time. +# Later changes to above system property (e.g. via setProperty method), +# this config file, the password file, or the access file have no effect to the +# running MBean server, the connector, or the registry. +# + +# +# ########## RMI connector settings for local management ########## +# +# com.sun.management.jmxremote.local.only=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as true then the local JMX RMI connector +# server will only accept connection requests from clients running on +# the host where the out-of-the-box JMX management agent is running. +# In order to ensure backwards compatibility this property could be +# set to false. However, deploying the local management agent in this +# way is discouraged because the local JMX RMI connector server will +# accept connection requests from any client either local or remote. +# For remote management the remote JMX RMI connector server should +# be used instead with authentication and SSL/TLS encryption enabled. +# + +# For allowing the local management agent accept local +# and remote connection requests use the following line +# com.sun.management.jmxremote.local.only=false + +# +# ###################### RMI SSL ############################# +# +# com.sun.management.jmxremote.ssl=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as false then SSL is not used. +# + +# For RMI monitoring without SSL use the following line +# com.sun.management.jmxremote.ssl=false + +# com.sun.management.jmxremote.ssl.config.file=filepath +# Specifies the location of the SSL configuration file. A properties +# file can be used to supply the keystore and truststore location and +# password settings thus avoiding to pass them as cleartext in the +# command-line. +# +# The current implementation of the out-of-the-box management agent will +# look up and use the properties specified below to configure the SSL +# keystore and truststore, if present: +# javax.net.ssl.keyStore= +# javax.net.ssl.keyStorePassword= +# javax.net.ssl.trustStore= +# javax.net.ssl.trustStorePassword= +# Any other properties in the file will be ignored. This will allow us +# to extend the property set in the future if required by the default +# SSL implementation. +# +# If the property "com.sun.management.jmxremote.ssl" is set to false, +# then this property is ignored. +# + +# For supplying the keystore settings in a file use the following line +# com.sun.management.jmxremote.ssl.config.file=filepath + +# com.sun.management.jmxremote.ssl.enabled.cipher.suites= +# The value of this property is a string that is a comma-separated list +# of SSL/TLS cipher suites to enable. This property can be specified in +# conjunction with the previous property "com.sun.management.jmxremote.ssl" +# in order to control which particular SSL/TLS cipher suites are enabled +# for use by accepted connections. If this property is not specified then +# the SSL/TLS RMI Server Socket Factory uses the SSL/TLS cipher suites that +# are enabled by default. +# + +# com.sun.management.jmxremote.ssl.enabled.protocols= +# The value of this property is a string that is a comma-separated list +# of SSL/TLS protocol versions to enable. This property can be specified in +# conjunction with the previous property "com.sun.management.jmxremote.ssl" +# in order to control which particular SSL/TLS protocol versions are +# enabled for use by accepted connections. If this property is not +# specified then the SSL/TLS RMI Server Socket Factory uses the SSL/TLS +# protocol versions that are enabled by default. +# + +# com.sun.management.jmxremote.ssl.need.client.auth=true|false +# Default for this property is false. (Case for true/false ignored) +# If this property is specified as true in conjunction with the previous +# property "com.sun.management.jmxremote.ssl" then the SSL/TLS RMI Server +# Socket Factory will require client authentication. +# + +# For RMI monitoring with SSL client authentication use the following line +# com.sun.management.jmxremote.ssl.need.client.auth=true + +# com.sun.management.jmxremote.registry.ssl=true|false +# Default for this property is false. (Case for true/false ignored) +# If this property is specified as true then the RMI registry used +# to bind the RMIServer remote object is protected with SSL/TLS +# RMI Socket Factories that can be configured with the properties: +# com.sun.management.jmxremote.ssl.config.file +# com.sun.management.jmxremote.ssl.enabled.cipher.suites +# com.sun.management.jmxremote.ssl.enabled.protocols +# com.sun.management.jmxremote.ssl.need.client.auth +# If the two properties below are true at the same time, i.e. +# com.sun.management.jmxremote.ssl=true +# com.sun.management.jmxremote.registry.ssl=true +# then the RMIServer remote object and the RMI registry are +# both exported with the same SSL/TLS RMI Socket Factories. +# + +# For using an SSL/TLS protected RMI registry use the following line +# com.sun.management.jmxremote.registry.ssl=true + +# +# ################ RMI User authentication ################ +# +# com.sun.management.jmxremote.authenticate=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as false then no authentication is +# performed and all users are allowed all access. +# + +# For RMI monitoring without any checking use the following line +# com.sun.management.jmxremote.authenticate=false + +# +# ################ RMI Login configuration ################### +# +# com.sun.management.jmxremote.login.config= +# Specifies the name of a JAAS login configuration entry to use when +# authenticating users of RMI monitoring. +# +# Setting this property is optional - the default login configuration +# specifies a file-based authentication that uses the password file. +# +# When using this property to override the default login configuration +# then the named configuration entry must be in a file that gets loaded +# by JAAS. In addition, the login module(s) specified in the configuration +# should use the name and/or password callbacks to acquire the user's +# credentials. See the NameCallback and PasswordCallback classes in the +# javax.security.auth.callback package for more details. +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# + +# For a non-default login configuration use the following line +# com.sun.management.jmxremote.login.config= + +# +# ################ RMI Password file location ################## +# +# com.sun.management.jmxremote.password.file=filepath +# Specifies location for password file +# This is optional - default location is +# $JRE/conf/management/jmxremote.password +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# Otherwise the password file must exist and be in the valid format. +# If the password file is empty or non-existent then no access is allowed. +# + +# For a non-default password file location use the following line +# com.sun.management.jmxremote.password.file=filepath + +# +# ################# Hash passwords in password file ############## +# com.sun.management.jmxremote.password.toHashes = true|false +# Default for this property is true. +# Specifies if passwords in the password file should be hashed or not. +# If this property is true, and if the password file is writable, and if the +# system security policy allows writing into the password file, +# all the clear passwords in the password file will be replaced by +# their SHA3-512 hash when the file is read by the server +# + +# +# ################ RMI Access file location ##################### +# +# com.sun.management.jmxremote.access.file=filepath +# Specifies location for access file +# This is optional - default location is +# $JRE/conf/management/jmxremote.access +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# Otherwise, the access file must exist and be in the valid format. +# If the access file is empty or non-existent then no access is allowed. +# + +# For a non-default password file location use the following line +# com.sun.management.jmxremote.access.file=filepath +# + +# ################ Management agent listen interface ######################### +# +# com.sun.management.jmxremote.host= +# Specifies the local interface on which the JMX RMI agent will bind. +# This is useful when running on machines which have several +# interfaces defined. It makes it possible to listen to a specific +# subnet accessible through that interface. +# +# The format of the value for that property is any string accepted +# by java.net.InetAddress.getByName(String). +# + +# ################ Filter for ObjectInputStream ############################# +# com.sun.management.jmxremote.serial.filter.pattern= +# A filter, if configured, is used by java.io.ObjectInputStream during +# deserialization of parameters sent to the JMX default agent to validate the +# contents of the stream. +# A filter is configured as a sequence of patterns, each pattern is either +# matched against the name of a class in the stream or defines a limit. +# Patterns are separated by ";" (semicolon). +# Whitespace is significant and is considered part of the pattern. +# +# If a pattern includes a "=", it sets a limit. +# If a limit appears more than once the last value is used. +# Limits are checked before classes regardless of the order in the sequence of patterns. +# If any of the limits are exceeded, the filter status is REJECTED. +# +# maxdepth=value - the maximum depth of a graph +# maxrefs=value - the maximum number of internal references +# maxbytes=value - the maximum number of bytes in the input stream +# maxarray=value - the maximum array length allowed +# +# Other patterns, from left to right, match the class or package name as +# returned from Class.getName. +# If the class is an array type, the class or package to be matched is the element type. +# Arrays of any number of dimensions are treated the same as the element type. +# For example, a pattern of "!example.Foo", rejects creation of any instance or +# array of example.Foo. +# +# If the pattern starts with "!", the status is REJECTED if the remaining pattern +# is matched; otherwise the status is ALLOWED if the pattern matches. +# If the pattern contains "/", the non-empty prefix up to the "/" is the module name; +# if the module name matches the module name of the class then +# the remaining pattern is matched with the class name. +# If there is no "/", the module name is not compared. +# If the pattern ends with ".**" it matches any class in the package and all subpackages. +# If the pattern ends with ".*" it matches any class in the package. +# If the pattern ends with "*", it matches any class with the pattern as a prefix. +# If the pattern is equal to the class name, it matches. +# Otherwise, the status is UNDECIDED. diff -Nru pycharm-2018.3.5/jre64/conf/net.properties pycharm-2019.1/jre64/conf/net.properties --- pycharm-2018.3.5/jre64/conf/net.properties 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/net.properties 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,121 @@ +############################################################ +# Default Networking Configuration File +# +# This file may contain default values for the networking system properties. +# These values are only used when the system properties are not specified +# on the command line or set programmatically. +# For now, only the various proxy settings can be configured here. +############################################################ + +# Whether or not the DefaultProxySelector will default to System Proxy +# settings when they do exist. +# Set it to 'true' to enable this feature and check for platform +# specific proxy settings +# Note that the system properties that do explicitly set proxies +# (like http.proxyHost) do take precedence over the system settings +# even if java.net.useSystemProxies is set to true. + +java.net.useSystemProxies=false + +#------------------------------------------------------------------------ +# Proxy configuration for the various protocol handlers. +# DO NOT uncomment these lines if you have set java.net.useSystemProxies +# to true as the protocol specific properties will take precedence over +# system settings. +#------------------------------------------------------------------------ + +# HTTP Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) and nonProxyHosts is a '|' separated list of hostnames which +# should be accessed directly, ignoring the proxy server (default value is +# localhost & 127.0.0.1). +# +# http.proxyHost= +# http.proxyPort=80 +http.nonProxyHosts=localhost|127.*|[::1] +# +# HTTPS Proxy Settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 443). The HTTPS protocol handlers uses the http nonProxyHosts list. +# +# https.proxyHost= +# https.proxyPort=443 +# +# FTP Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) and nonProxyHosts is a '|' separated list of hostnames which +# should be accessed directly, ignoring the proxy server (default value is +# localhost & 127.0.0.1). +# +# ftp.proxyHost= +# ftp.proxyPort=80 +ftp.nonProxyHosts=localhost|127.*|[::1] +# +# Gopher Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) +# +# gopher.proxyHost= +# gopher.proxyPort=80 +# +# Socks proxy settings. socksProxyHost is the name of the proxy server +# (e.g. socks.domain.com), socksProxyPort is the port number to use +# (default value is 1080) +# +# socksProxyHost= +# socksProxyPort=1080 +# +# HTTP Keep Alive settings. remainingData is the maximum amount of data +# in kilobytes that will be cleaned off the underlying socket so that it +# can be reused (default value is 512K), queuedConnections is the maximum +# number of Keep Alive connections to be on the queue for clean up (default +# value is 10). +# http.KeepAlive.remainingData=512 +# http.KeepAlive.queuedConnections=10 + +# Authentication Scheme restrictions for HTTP and HTTPS. +# +# In some environments certain authentication schemes may be undesirable +# when proxying HTTP or HTTPS. For example, "Basic" results in effectively the +# cleartext transmission of the user's password over the physical network. +# This section describes the mechanism for disabling authentication schemes +# based on the scheme name. Disabled schemes will be treated as if they are not +# supported by the implementation. +# +# The 'jdk.http.auth.tunneling.disabledSchemes' property lists the authentication +# schemes that will be disabled when tunneling HTTPS over a proxy, HTTP CONNECT. +# The 'jdk.http.auth.proxying.disabledSchemes' property lists the authentication +# schemes that will be disabled when proxying HTTP. +# +# In both cases the property is a comma-separated list of, case-insensitive, +# authentication scheme names, as defined by their relevant RFCs. An +# implementation may, but is not required to, support common schemes whose names +# include: 'Basic', 'Digest', 'NTLM', 'Kerberos', 'Negotiate'. A scheme that +# is not known, or not supported, by the implementation is ignored. +# +# Note: This property is currently used by the JDK Reference implementation. It +# is not guaranteed to be examined and used by other implementations. +# +#jdk.http.auth.proxying.disabledSchemes= +jdk.http.auth.tunneling.disabledSchemes=Basic + +# +# Transparent NTLM HTTP authentication mode on Windows. Transparent authentication +# can be used for the NTLM scheme, where the security credentials based on the +# currently logged in user's name and password can be obtained directly from the +# operating system, without prompting the user. This property has three possible +# values which regulate the behavior as shown below. Other unrecognized values +# are handled the same as 'disabled'. Note, that NTLM is not considered to be a +# strongly secure authentication scheme and care should be taken before enabling +# this mechanism. +# +# Transparent authentication never used. +#jdk.http.ntlm.transparentAuth=disabled +# +# Enabled for all hosts. +#jdk.http.ntlm.transparentAuth=allHosts +# +# Enabled for hosts that are trusted in Windows Internet settings +#jdk.http.ntlm.transparentAuth=trustedHosts +# +jdk.http.ntlm.transparentAuth=disabled diff -Nru pycharm-2018.3.5/jre64/conf/security/java.policy pycharm-2019.1/jre64/conf/security/java.policy --- pycharm-2018.3.5/jre64/conf/security/java.policy 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/security/java.policy 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,44 @@ +// +// This system policy file grants a set of default permissions to all domains +// and can be configured to grant additional permissions to modules and other +// code sources. The code source URL scheme for modules linked into a +// run-time image is "jrt". +// +// For example, to grant permission to read the "foo" property to the module +// "com.greetings", the grant entry is: +// +// grant codeBase "jrt:/com.greetings" { +// permission java.util.PropertyPermission "foo", "read"; +// }; +// + +// default permissions granted to all domains +grant { + // allows anyone to listen on dynamic ports + permission java.net.SocketPermission "localhost:0", "listen"; + + // "standard" properies that can be read by anyone + permission java.util.PropertyPermission "java.version", "read"; + permission java.util.PropertyPermission "java.vendor", "read"; + permission java.util.PropertyPermission "java.vendor.url", "read"; + permission java.util.PropertyPermission "java.class.version", "read"; + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "os.version", "read"; + permission java.util.PropertyPermission "os.arch", "read"; + permission java.util.PropertyPermission "file.separator", "read"; + permission java.util.PropertyPermission "path.separator", "read"; + permission java.util.PropertyPermission "line.separator", "read"; + permission java.util.PropertyPermission + "java.specification.version", "read"; + permission java.util.PropertyPermission "java.specification.vendor", "read"; + permission java.util.PropertyPermission "java.specification.name", "read"; + permission java.util.PropertyPermission + "java.vm.specification.version", "read"; + permission java.util.PropertyPermission + "java.vm.specification.vendor", "read"; + permission java.util.PropertyPermission + "java.vm.specification.name", "read"; + permission java.util.PropertyPermission "java.vm.version", "read"; + permission java.util.PropertyPermission "java.vm.vendor", "read"; + permission java.util.PropertyPermission "java.vm.name", "read"; +}; diff -Nru pycharm-2018.3.5/jre64/conf/security/java.security pycharm-2019.1/jre64/conf/security/java.security --- pycharm-2018.3.5/jre64/conf/security/java.security 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/security/java.security 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,1064 @@ +# +# This is the "master security properties file". +# +# An alternate java.security properties file may be specified +# from the command line via the system property +# +# -Djava.security.properties= +# +# This properties file appends to the master security properties file. +# If both properties files specify values for the same key, the value +# from the command-line properties file is selected, as it is the last +# one loaded. +# +# Also, if you specify +# +# -Djava.security.properties== (2 equals), +# +# then that properties file completely overrides the master security +# properties file. +# +# To disable the ability to specify an additional properties file from +# the command line, set the key security.overridePropertiesFile +# to false in the master security properties file. It is set to true +# by default. + +# In this file, various security properties are set for use by +# java.security classes. This is where users can statically register +# Cryptography Package Providers ("providers" for short). The term +# "provider" refers to a package or set of packages that supply a +# concrete implementation of a subset of the cryptography aspects of +# the Java Security API. A provider may, for example, implement one or +# more digital signature algorithms or message digest algorithms. +# +# Each provider must implement a subclass of the Provider class. +# To register a provider in this master security properties file, +# specify the provider and priority in the format +# +# security.provider.= +# +# This declares a provider, and specifies its preference +# order n. The preference order is the order in which providers are +# searched for requested algorithms (when no specific provider is +# requested). The order is 1-based; 1 is the most preferred, followed +# by 2, and so on. +# +# must specify the name of the Provider as passed to its super +# class java.security.Provider constructor. This is for providers loaded +# through the ServiceLoader mechanism. +# +# must specify the subclass of the Provider class whose +# constructor sets the values of various properties that are required +# for the Java Security API to look up the algorithms or other +# facilities implemented by the provider. This is for providers loaded +# through classpath. +# +# Note: Providers can be dynamically registered instead by calls to +# either the addProvider or insertProviderAt method in the Security +# class. + +# +# List of providers and their preference orders (see above): +# +security.provider.1=SUN +security.provider.2=SunRsaSign +security.provider.3=SunEC +security.provider.4=SunJSSE +security.provider.5=SunJCE +security.provider.6=SunJGSS +security.provider.7=SunSASL +security.provider.8=XMLDSig +security.provider.9=SunPCSC +security.provider.10=JdkLDAP +security.provider.11=JdkSASL +security.provider.12=SunPKCS11 + +# +# A list of preferred providers for specific algorithms. These providers will +# be searched for matching algorithms before the list of registered providers. +# Entries containing errors (parsing, etc) will be ignored. Use the +# -Djava.security.debug=jca property to debug these errors. +# +# The property is a comma-separated list of serviceType.algorithm:provider +# entries. The serviceType (example: "MessageDigest") is optional, and if +# not specified, the algorithm applies to all service types that support it. +# The algorithm is the standard algorithm name or transformation. +# Transformations can be specified in their full standard name +# (ex: AES/CBC/PKCS5Padding), or as partial matches (ex: AES, AES/CBC). +# The provider is the name of the provider. Any provider that does not +# also appear in the registered list will be ignored. +# +# There is a special serviceType for this property only to group a set of +# algorithms together. The type is "Group" and is followed by an algorithm +# keyword. Groups are to simplify and lessen the entries on the property +# line. Current groups are: +# Group.SHA2 = SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256 +# Group.HmacSHA2 = HmacSHA224, HmacSHA256, HmacSHA384, HmacSHA512 +# Group.SHA2RSA = SHA224withRSA, SHA256withRSA, SHA384withRSA, SHA512withRSA +# Group.SHA2DSA = SHA224withDSA, SHA256withDSA, SHA384withDSA, SHA512withDSA +# Group.SHA2ECDSA = SHA224withECDSA, SHA256withECDSA, SHA384withECDSA, \ +# SHA512withECDSA +# Group.SHA3 = SHA3-224, SHA3-256, SHA3-384, SHA3-512 +# Group.HmacSHA3 = HmacSHA3-224, HmacSHA3-256, HmacSHA3-384, HmacSHA3-512 +# +# Example: +# jdk.security.provider.preferred=AES/GCM/NoPadding:SunJCE, \ +# MessageDigest.SHA-256:SUN, Group.HmacSHA2:SunJCE +# +#jdk.security.provider.preferred= + + +# +# Sun Provider SecureRandom seed source. +# +# Select the primary source of seed data for the "NativePRNG", "SHA1PRNG" +# and "DRBG" SecureRandom implementations in the "Sun" provider. +# (Other SecureRandom implementations might also use this property.) +# +# On Unix-like systems (for example, Solaris/Linux/MacOS), the +# "NativePRNG", "SHA1PRNG" and "DRBG" implementations obtains seed data from +# special device files such as file:/dev/random. +# +# On Windows systems, specifying the URLs "file:/dev/random" or +# "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding +# mechanism for SHA1PRNG and DRBG. +# +# By default, an attempt is made to use the entropy gathering device +# specified by the "securerandom.source" Security property. If an +# exception occurs while accessing the specified URL: +# +# NativePRNG: +# a default value of /dev/random will be used. If neither +# are available, the implementation will be disabled. +# "file" is the only currently supported protocol type. +# +# SHA1PRNG and DRBG: +# the traditional system/thread activity algorithm will be used. +# +# The entropy gathering device can also be specified with the System +# property "java.security.egd". For example: +# +# % java -Djava.security.egd=file:/dev/random MainClass +# +# Specifying this System property will override the +# "securerandom.source" Security property. +# +# In addition, if "file:/dev/random" or "file:/dev/urandom" is +# specified, the "NativePRNG" implementation will be more preferred than +# DRBG and SHA1PRNG in the Sun provider. +# +securerandom.source=file:/dev/random + +# +# A list of known strong SecureRandom implementations. +# +# To help guide applications in selecting a suitable strong +# java.security.SecureRandom implementation, Java distributions should +# indicate a list of known strong implementations using the property. +# +# This is a comma-separated list of algorithm and/or algorithm:provider +# entries. +# +securerandom.strongAlgorithms=NativePRNGBlocking:SUN,DRBG:SUN + +# +# Sun provider DRBG configuration and default instantiation request. +# +# NIST SP 800-90Ar1 lists several DRBG mechanisms. Each can be configured +# with a DRBG algorithm name, and can be instantiated with a security strength, +# prediction resistance support, etc. This property defines the configuration +# and the default instantiation request of "DRBG" SecureRandom implementations +# in the SUN provider. (Other DRBG implementations can also use this property.) +# Applications can request different instantiation parameters like security +# strength, capability, personalization string using one of the +# getInstance(...,SecureRandomParameters,...) methods with a +# DrbgParameters.Instantiation argument, but other settings such as the +# mechanism and DRBG algorithm names are not currently configurable by any API. +# +# Please note that the SUN implementation of DRBG always supports reseeding. +# +# The value of this property is a comma-separated list of all configurable +# aspects. The aspects can appear in any order but the same aspect can only +# appear at most once. Its BNF-style definition is: +# +# Value: +# aspect { "," aspect } +# +# aspect: +# mech_name | algorithm_name | strength | capability | df +# +# // The DRBG mechanism to use. Default "Hash_DRBG" +# mech_name: +# "Hash_DRBG" | "HMAC_DRBG" | "CTR_DRBG" +# +# // The DRBG algorithm name. The "SHA-***" names are for Hash_DRBG and +# // HMAC_DRBG, default "SHA-256". The "AES-***" names are for CTR_DRBG, +# // default "AES-128" when using the limited cryptographic or "AES-256" +# // when using the unlimited. +# algorithm_name: +# "SHA-224" | "SHA-512/224" | "SHA-256" | +# "SHA-512/256" | "SHA-384" | "SHA-512" | +# "AES-128" | "AES-192" | "AES-256" +# +# // Security strength requested. Default "128" +# strength: +# "112" | "128" | "192" | "256" +# +# // Prediction resistance and reseeding request. Default "none" +# // "pr_and_reseed" - Both prediction resistance and reseeding +# // support requested +# // "reseed_only" - Only reseeding support requested +# // "none" - Neither prediction resistance not reseeding +# // support requested +# pr: +# "pr_and_reseed" | "reseed_only" | "none" +# +# // Whether a derivation function should be used. only applicable +# // to CTR_DRBG. Default "use_df" +# df: +# "use_df" | "no_df" +# +# Examples, +# securerandom.drbg.config=Hash_DRBG,SHA-224,112,none +# securerandom.drbg.config=CTR_DRBG,AES-256,192,pr_and_reseed,use_df +# +# The default value is an empty string, which is equivalent to +# securerandom.drbg.config=Hash_DRBG,SHA-256,128,none +# +securerandom.drbg.config= + +# +# Class to instantiate as the javax.security.auth.login.Configuration +# provider. +# +login.configuration.provider=sun.security.provider.ConfigFile + +# +# Default login configuration file +# +#login.config.url.1=file:${user.home}/.java.login.config + +# +# Class to instantiate as the system Policy. This is the name of the class +# that will be used as the Policy object. The system class loader is used to +# locate this class. +# +policy.provider=sun.security.provider.PolicyFile + +# The default is to have a single system-wide policy file, +# and a policy file in the user's home directory. +# +policy.url.1=file:${java.home}/conf/security/java.policy +policy.url.2=file:${user.home}/.java.policy + +# whether or not we expand properties in the policy file +# if this is set to false, properties (${...}) will not be expanded in policy +# files. +# +policy.expandProperties=true + +# whether or not we allow an extra policy to be passed on the command line +# with -Djava.security.policy=somefile. Comment out this line to disable +# this feature. +# +policy.allowSystemProperty=true + +# whether or not we look into the IdentityScope for trusted Identities +# when encountering a 1.1 signed JAR file. If the identity is found +# and is trusted, we grant it AllPermission. Note: the default policy +# provider (sun.security.provider.PolicyFile) does not support this property. +# +policy.ignoreIdentityScope=false + +# +# Default keystore type. +# +keystore.type=pkcs12 + +# +# Controls compatibility mode for JKS and PKCS12 keystore types. +# +# When set to 'true', both JKS and PKCS12 keystore types support loading +# keystore files in either JKS or PKCS12 format. When set to 'false' the +# JKS keystore type supports loading only JKS keystore files and the PKCS12 +# keystore type supports loading only PKCS12 keystore files. +# +keystore.type.compat=true + +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when passed to the +# SecurityManager::checkPackageAccess method unless the corresponding +# RuntimePermission("accessClassInPackage."+package) has been granted. +# +package.access=sun.misc.,\ + sun.reflect. + +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when passed to the +# SecurityManager::checkPackageDefinition method unless the corresponding +# RuntimePermission("defineClassInPackage."+package) has been granted. +# +# By default, none of the class loaders supplied with the JDK call +# checkPackageDefinition. +# +package.definition=sun.misc.,\ + sun.reflect. + +# +# Determines whether this properties file can be appended to +# or overridden on the command line via -Djava.security.properties +# +security.overridePropertiesFile=true + +# +# Determines the default key and trust manager factory algorithms for +# the javax.net.ssl package. +# +ssl.KeyManagerFactory.algorithm=SunX509 +ssl.TrustManagerFactory.algorithm=PKIX + +# +# The Java-level namelookup cache policy for successful lookups: +# +# any negative value: caching forever +# any positive value: the number of seconds to cache an address for +# zero: do not cache +# +# default value is forever (FOREVER). For security reasons, this +# caching is made forever when a security manager is set. When a security +# manager is not set, the default behavior in this implementation +# is to cache for 30 seconds. +# +# NOTE: setting this to anything other than the default value can have +# serious security implications. Do not set it unless +# you are sure you are not exposed to DNS spoofing attack. +# +#networkaddress.cache.ttl=-1 + +# The Java-level namelookup cache policy for failed lookups: +# +# any negative value: cache forever +# any positive value: the number of seconds to cache negative lookup results +# zero: do not cache +# +# In some Microsoft Windows networking environments that employ +# the WINS name service in addition to DNS, name service lookups +# that fail may take a noticeably long time to return (approx. 5 seconds). +# For this reason the default caching policy is to maintain these +# results for 10 seconds. +# +networkaddress.cache.negative.ttl=10 + +# +# Properties to configure OCSP for certificate revocation checking +# + +# Enable OCSP +# +# By default, OCSP is not used for certificate revocation checking. +# This property enables the use of OCSP when set to the value "true". +# +# NOTE: SocketPermission is required to connect to an OCSP responder. +# +# Example, +# ocsp.enable=true + +# +# Location of the OCSP responder +# +# By default, the location of the OCSP responder is determined implicitly +# from the certificate being validated. This property explicitly specifies +# the location of the OCSP responder. The property is used when the +# Authority Information Access extension (defined in RFC 5280) is absent +# from the certificate or when it requires overriding. +# +# Example, +# ocsp.responderURL=http://ocsp.example.net:80 + +# +# Subject name of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# distinguished name (defined in RFC 2253) which identifies a certificate in +# the set of certificates supplied during cert path validation. In cases where +# the subject name alone is not sufficient to uniquely identify the certificate +# then both the "ocsp.responderCertIssuerName" and +# "ocsp.responderCertSerialNumber" properties must be used instead. When this +# property is set then those two properties are ignored. +# +# Example, +# ocsp.responderCertSubjectName=CN=OCSP Responder, O=XYZ Corp + +# +# Issuer name of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# distinguished name (defined in RFC 2253) which identifies a certificate in +# the set of certificates supplied during cert path validation. When this +# property is set then the "ocsp.responderCertSerialNumber" property must also +# be set. When the "ocsp.responderCertSubjectName" property is set then this +# property is ignored. +# +# Example, +# ocsp.responderCertIssuerName=CN=Enterprise CA, O=XYZ Corp + +# +# Serial number of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# of hexadecimal digits (colon or space separators may be present) which +# identifies a certificate in the set of certificates supplied during cert path +# validation. When this property is set then the "ocsp.responderCertIssuerName" +# property must also be set. When the "ocsp.responderCertSubjectName" property +# is set then this property is ignored. +# +# Example, +# ocsp.responderCertSerialNumber=2A:FF:00 + +# +# Policy for failed Kerberos KDC lookups: +# +# When a KDC is unavailable (network error, service failure, etc), it is +# put inside a blacklist and accessed less often for future requests. The +# value (case-insensitive) for this policy can be: +# +# tryLast +# KDCs in the blacklist are always tried after those not on the list. +# +# tryLess[:max_retries,timeout] +# KDCs in the blacklist are still tried by their order in the configuration, +# but with smaller max_retries and timeout values. max_retries and timeout +# are optional numerical parameters (default 1 and 5000, which means once +# and 5 seconds). Please notes that if any of the values defined here is +# more than what is defined in krb5.conf, it will be ignored. +# +# Whenever a KDC is detected as available, it is removed from the blacklist. +# The blacklist is reset when krb5.conf is reloaded. You can add +# refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is +# reloaded whenever a JAAS authentication is attempted. +# +# Example, +# krb5.kdc.bad.policy = tryLast +# krb5.kdc.bad.policy = tryLess:2,2000 +# +krb5.kdc.bad.policy = tryLast + +# +# Algorithm restrictions for certification path (CertPath) processing +# +# In some environments, certain algorithms or key lengths may be undesirable +# for certification path building and validation. For example, "MD2" is +# generally no longer considered to be a secure hash algorithm. This section +# describes the mechanism for disabling algorithms based on algorithm name +# and/or key length. This includes algorithms used in certificates, as well +# as revocation information such as CRLs and signed OCSP Responses. +# The syntax of the disabled algorithm string is described as follows: +# DisabledAlgorithms: +# " DisabledAlgorithm { , DisabledAlgorithm } " +# +# DisabledAlgorithm: +# AlgorithmName [Constraint] { '&' Constraint } +# +# AlgorithmName: +# (see below) +# +# Constraint: +# KeySizeConstraint | CAConstraint | DenyAfterConstraint | +# UsageConstraint +# +# KeySizeConstraint: +# keySize Operator KeyLength +# +# Operator: +# <= | < | == | != | >= | > +# +# KeyLength: +# Integer value of the algorithm's key length in bits +# +# CAConstraint: +# jdkCA +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# +# UsageConstraint: +# usage [TLSServer] [TLSClient] [SignedJAR] +# +# The "AlgorithmName" is the standard algorithm name of the disabled +# algorithm. See "Java Cryptography Architecture Standard Algorithm Name +# Documentation" for information about Standard Algorithm Names. Matching +# is performed using a case-insensitive sub-element matching rule. (For +# example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and +# "ECDSA" for signatures.) If the assertion "AlgorithmName" is a +# sub-element of the certificate algorithm name, the algorithm will be +# rejected during certification path building and validation. For example, +# the assertion algorithm name "DSA" will disable all certificate algorithms +# that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion +# will not disable algorithms related to "ECDSA". +# +# A "Constraint" defines restrictions on the keys and/or certificates for +# a specified AlgorithmName: +# +# KeySizeConstraint: +# keySize Operator KeyLength +# The constraint requires a key of a valid size range if the +# "AlgorithmName" is of a key algorithm. The "KeyLength" indicates +# the key size specified in number of bits. For example, +# "RSA keySize <= 1024" indicates that any RSA key with key size less +# than or equal to 1024 bits should be disabled, and +# "RSA keySize < 1024, RSA keySize > 2048" indicates that any RSA key +# with key size less than 1024 or greater than 2048 should be disabled. +# This constraint is only used on algorithms that have a key size. +# +# CAConstraint: +# jdkCA +# This constraint prohibits the specified algorithm only if the +# algorithm is used in a certificate chain that terminates at a marked +# trust anchor in the lib/security/cacerts keystore. If the jdkCA +# constraint is not set, then all chains using the specified algorithm +# are restricted. jdkCA may only be used once in a DisabledAlgorithm +# expression. +# Example: To apply this constraint to SHA-1 certificates, include +# the following: "SHA1 jdkCA" +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# This constraint prohibits a certificate with the specified algorithm +# from being used after the date regardless of the certificate's +# validity. JAR files that are signed and timestamped before the +# constraint date with certificates containing the disabled algorithm +# will not be restricted. The date is processed in the UTC timezone. +# This constraint can only be used once in a DisabledAlgorithm +# expression. +# Example: To deny usage of RSA 2048 bit certificates after Feb 3 2020, +# use the following: "RSA keySize == 2048 & denyAfter 2020-02-03" +# +# UsageConstraint: +# usage [TLSServer] [TLSClient] [SignedJAR] +# This constraint prohibits the specified algorithm for +# a specified usage. This should be used when disabling an algorithm +# for all usages is not practical. 'TLSServer' restricts the algorithm +# in TLS server certificate chains when server authentication is +# performed. 'TLSClient' restricts the algorithm in TLS client +# certificate chains when client authentication is performed. +# 'SignedJAR' constrains use of certificates in signed jar files. +# The usage type follows the keyword and more than one usage type can +# be specified with a whitespace delimiter. +# Example: "SHA1 usage TLSServer TLSClient" +# +# When an algorithm must satisfy more than one constraint, it must be +# delimited by an ampersand '&'. For example, to restrict certificates in a +# chain that terminate at a distribution provided trust anchor and contain +# RSA keys that are less than or equal to 1024 bits, add the following +# constraint: "RSA keySize <= 1024 & jdkCA". +# +# All DisabledAlgorithms expressions are processed in the order defined in the +# property. This requires lower keysize constraints to be specified +# before larger keysize constraints of the same algorithm. For example: +# "RSA keySize < 1024 & jdkCA, RSA keySize < 2048". +# +# Note: The algorithm restrictions do not apply to trust anchors or +# self-signed certificates. +# +# Note: This property is currently used by Oracle's PKIX implementation. It +# is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048 +# +# +jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage TLSServer, \ + RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224 + +# +# Algorithm restrictions for signed JAR files +# +# In some environments, certain algorithms or key lengths may be undesirable +# for signed JAR validation. For example, "MD2" is generally no longer +# considered to be a secure hash algorithm. This section describes the +# mechanism for disabling algorithms based on algorithm name and/or key length. +# JARs signed with any of the disabled algorithms or key sizes will be treated +# as unsigned. +# +# The syntax of the disabled algorithm string is described as follows: +# DisabledAlgorithms: +# " DisabledAlgorithm { , DisabledAlgorithm } " +# +# DisabledAlgorithm: +# AlgorithmName [Constraint] { '&' Constraint } +# +# AlgorithmName: +# (see below) +# +# Constraint: +# KeySizeConstraint | DenyAfterConstraint +# +# KeySizeConstraint: +# keySize Operator KeyLength +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# +# Operator: +# <= | < | == | != | >= | > +# +# KeyLength: +# Integer value of the algorithm's key length in bits +# +# Note: This property is currently used by the JDK Reference +# implementation. It is not guaranteed to be examined and used by other +# implementations. +# +# See "jdk.certpath.disabledAlgorithms" for syntax descriptions. +# +jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \ + DSA keySize < 1024 + +# +# Algorithm restrictions for Secure Socket Layer/Transport Layer Security +# (SSL/TLS/DTLS) processing +# +# In some environments, certain algorithms or key lengths may be undesirable +# when using SSL/TLS/DTLS. This section describes the mechanism for disabling +# algorithms during SSL/TLS/DTLS security parameters negotiation, including +# protocol version negotiation, cipher suites selection, peer authentication +# and key exchange mechanisms. +# +# Disabled algorithms will not be negotiated for SSL/TLS connections, even +# if they are enabled explicitly in an application. +# +# For PKI-based peer authentication and key exchange mechanisms, this list +# of disabled algorithms will also be checked during certification path +# building and validation, including algorithms used in certificates, as +# well as revocation information such as CRLs and signed OCSP Responses. +# This is in addition to the jdk.certpath.disabledAlgorithms property above. +# +# See the specification of "jdk.certpath.disabledAlgorithms" for the +# syntax of the disabled algorithm string. +# +# Note: The algorithm restrictions do not apply to trust anchors or +# self-signed certificates. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 +jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, \ + EC keySize < 224, 3DES_EDE_CBC, anon, NULL + +# +# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS) +# processing in JSSE implementation. +# +# In some environments, a certain algorithm may be undesirable but it +# cannot be disabled because of its use in legacy applications. Legacy +# algorithms may still be supported, but applications should not use them +# as the security strength of legacy algorithms are usually not strong enough +# in practice. +# +# During SSL/TLS security parameters negotiation, legacy algorithms will +# not be negotiated unless there are no other candidates. +# +# The syntax of the legacy algorithms string is described as this Java +# BNF-style: +# LegacyAlgorithms: +# " LegacyAlgorithm { , LegacyAlgorithm } " +# +# LegacyAlgorithm: +# AlgorithmName (standard JSSE algorithm name) +# +# See the specification of security property "jdk.certpath.disabledAlgorithms" +# for the syntax and description of the "AlgorithmName" notation. +# +# Per SSL/TLS specifications, cipher suites have the form: +# SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg +# or +# TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg +# +# For example, the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA uses RSA as the +# key exchange algorithm, AES_128_CBC (128 bits AES cipher algorithm in CBC +# mode) as the cipher (encryption) algorithm, and SHA-1 as the message digest +# algorithm for HMAC. +# +# The LegacyAlgorithm can be one of the following standard algorithm names: +# 1. JSSE cipher suite name, e.g., TLS_RSA_WITH_AES_128_CBC_SHA +# 2. JSSE key exchange algorithm name, e.g., RSA +# 3. JSSE cipher (encryption) algorithm name, e.g., AES_128_CBC +# 4. JSSE message digest algorithm name, e.g., SHA +# +# See SSL/TLS specifications and "Java Cryptography Architecture Standard +# Algorithm Name Documentation" for information about the algorithm names. +# +# Note: If a legacy algorithm is also restricted through the +# jdk.tls.disabledAlgorithms property or the +# java.security.AlgorithmConstraints API (See +# javax.net.ssl.SSLParameters.setAlgorithmConstraints()), +# then the algorithm is completely disabled and will not be negotiated. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# There is no guarantee the property will continue to exist or be of the +# same syntax in future releases. +# +# Example: +# jdk.tls.legacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5 +# +jdk.tls.legacyAlgorithms= \ + K_NULL, C_NULL, M_NULL, \ + DH_anon, ECDH_anon, \ + RC4_128, RC4_40, DES_CBC, DES40_CBC, \ + 3DES_EDE_CBC + +# +# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) +# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. +# +# In traditional SSL/TLS/DTLS connections where finite field DHE parameters +# negotiation mechanism is not used, the server offers the client group +# parameters, base generator g and prime modulus p, for DHE key exchange. +# It is recommended to use dynamic group parameters. This property defines +# a mechanism that allows you to specify custom group parameters. +# +# The syntax of this property string is described as this Java BNF-style: +# DefaultDHEParameters: +# DefinedDHEParameters { , DefinedDHEParameters } +# +# DefinedDHEParameters: +# "{" DHEPrimeModulus , DHEBaseGenerator "}" +# +# DHEPrimeModulus: +# HexadecimalDigits +# +# DHEBaseGenerator: +# HexadecimalDigits +# +# HexadecimalDigits: +# HexadecimalDigit { HexadecimalDigit } +# +# HexadecimalDigit: one of +# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f +# +# Whitespace characters are ignored. +# +# The "DefinedDHEParameters" defines the custom group parameters, prime +# modulus p and base generator g, for a particular size of prime modulus p. +# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the +# "DHEBaseGenerator" defines the hexadecimal base generator g of a group +# parameter. It is recommended to use safe primes for the custom group +# parameters. +# +# If this property is not defined or the value is empty, the underlying JSSE +# provider's default group parameter is used for each connection. +# +# If the property value does not follow the grammar, or a particular group +# parameter is not valid, the connection will fall back and use the +# underlying JSSE provider's default group parameter. +# +# Note: This property is currently used by OpenJDK's JSSE implementation. It +# is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.tls.server.defaultDHEParameters= +# { \ +# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ +# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ +# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ +# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ +# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ +# FFFFFFFF FFFFFFFF, 2} + +# +# TLS key limits on symmetric cryptographic algorithms +# +# This security property sets limits on algorithms key usage in TLS 1.3. +# When the amount of data encrypted exceeds the algorithm value listed below, +# a KeyUpdate message will trigger a key change. This is for symmetric ciphers +# with TLS 1.3 only. +# +# The syntax for the property is described below: +# KeyLimits: +# " KeyLimit { , KeyLimit } " +# +# WeakKeyLimit: +# AlgorithmName Action Length +# +# AlgorithmName: +# A full algorithm transformation. +# +# Action: +# KeyUpdate +# +# Length: +# The amount of encrypted data in a session before the Action occurs +# This value may be an integer value in bytes, or as a power of two, 2^29. +# +# KeyUpdate: +# The TLS 1.3 KeyUpdate handshake process begins when the Length amount +# is fulfilled. +# +# Note: This property is currently used by OpenJDK's JSSE implementation. It +# is not guaranteed to be examined and used by other implementations. +# +jdk.tls.keyLimits=AES/GCM/NoPadding KeyUpdate 2^37 + +# +# Cryptographic Jurisdiction Policy defaults +# +# Import and export control rules on cryptographic software vary from +# country to country. By default, Java provides two different sets of +# cryptographic policy files[1]: +# +# unlimited: These policy files contain no restrictions on cryptographic +# strengths or algorithms +# +# limited: These policy files contain more restricted cryptographic +# strengths +# +# The default setting is determined by the value of the "crypto.policy" +# Security property below. If your country or usage requires the +# traditional restrictive policy, the "limited" Java cryptographic +# policy is still available and may be appropriate for your environment. +# +# If you have restrictions that do not fit either use case mentioned +# above, Java provides the capability to customize these policy files. +# The "crypto.policy" security property points to a subdirectory +# within /conf/security/policy/ which can be customized. +# Please see the /conf/security/policy/README.txt file or consult +# the Java Security Guide/JCA documentation for more information. +# +# YOU ARE ADVISED TO CONSULT YOUR EXPORT/IMPORT CONTROL COUNSEL OR ATTORNEY +# TO DETERMINE THE EXACT REQUIREMENTS. +# +# [1] Please note that the JCE for Java SE, including the JCE framework, +# cryptographic policy files, and standard JCE providers provided with +# the Java SE, have been reviewed and approved for export as mass market +# encryption item by the US Bureau of Industry and Security. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +crypto.policy=unlimited + +# +# The policy for the XML Signature secure validation mode. The mode is +# enabled by setting the property "org.jcp.xml.dsig.secureValidation" to +# true with the javax.xml.crypto.XMLCryptoContext.setProperty() method, +# or by running the code with a SecurityManager. +# +# Policy: +# Constraint {"," Constraint } +# Constraint: +# AlgConstraint | MaxTransformsConstraint | MaxReferencesConstraint | +# ReferenceUriSchemeConstraint | KeySizeConstraint | OtherConstraint +# AlgConstraint +# "disallowAlg" Uri +# MaxTransformsConstraint: +# "maxTransforms" Integer +# MaxReferencesConstraint: +# "maxReferences" Integer +# ReferenceUriSchemeConstraint: +# "disallowReferenceUriSchemes" String { String } +# KeySizeConstraint: +# "minKeySize" KeyAlg Integer +# OtherConstraint: +# "noDuplicateIds" | "noRetrievalMethodLoops" +# +# For AlgConstraint, Uri is the algorithm URI String that is not allowed. +# See the XML Signature Recommendation for more information on algorithm +# URI Identifiers. For KeySizeConstraint, KeyAlg is the standard algorithm +# name of the key type (ex: "RSA"). If the MaxTransformsConstraint, +# MaxReferencesConstraint or KeySizeConstraint (for the same key type) is +# specified more than once, only the last entry is enforced. +# +# Note: This property is currently used by the JDK Reference implementation. It +# is not guaranteed to be examined and used by other implementations. +# +jdk.xml.dsig.secureValidationPolicy=\ + disallowAlg http://www.w3.org/TR/1999/REC-xslt-19991116,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#rsa-md5,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#hmac-md5,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#md5,\ + maxTransforms 5,\ + maxReferences 30,\ + disallowReferenceUriSchemes file http https,\ + minKeySize RSA 1024,\ + minKeySize DSA 1024,\ + minKeySize EC 224,\ + noDuplicateIds,\ + noRetrievalMethodLoops + +# +# Serialization process-wide filter +# +# A filter, if configured, is used by java.io.ObjectInputStream during +# deserialization to check the contents of the stream. +# A filter is configured as a sequence of patterns, each pattern is either +# matched against the name of a class in the stream or defines a limit. +# Patterns are separated by ";" (semicolon). +# Whitespace is significant and is considered part of the pattern. +# +# If the system property jdk.serialFilter is also specified, it supersedes +# the security property value defined here. +# +# If a pattern includes a "=", it sets a limit. +# If a limit appears more than once the last value is used. +# Limits are checked before classes regardless of the order in the +# sequence of patterns. +# If any of the limits are exceeded, the filter status is REJECTED. +# +# maxdepth=value - the maximum depth of a graph +# maxrefs=value - the maximum number of internal references +# maxbytes=value - the maximum number of bytes in the input stream +# maxarray=value - the maximum array length allowed +# +# Other patterns, from left to right, match the class or package name as +# returned from Class.getName. +# If the class is an array type, the class or package to be matched is the +# element type. +# Arrays of any number of dimensions are treated the same as the element type. +# For example, a pattern of "!example.Foo", rejects creation of any instance or +# array of example.Foo. +# +# If the pattern starts with "!", the status is REJECTED if the remaining +# pattern is matched; otherwise the status is ALLOWED if the pattern matches. +# If the pattern contains "/", the non-empty prefix up to the "/" is the +# module name; +# if the module name matches the module name of the class then +# the remaining pattern is matched with the class name. +# If there is no "/", the module name is not compared. +# If the pattern ends with ".**" it matches any class in the package and all +# subpackages. +# If the pattern ends with ".*" it matches any class in the package. +# If the pattern ends with "*", it matches any class with the pattern as a +# prefix. +# If the pattern is equal to the class name, it matches. +# Otherwise, the status is UNDECIDED. +# +#jdk.serialFilter=pattern;pattern + +# +# RMI Registry Serial Filter +# +# The filter pattern uses the same format as jdk.serialFilter. +# This filter can override the builtin filter if additional types need to be +# allowed or rejected from the RMI Registry or to decrease limits but not +# to increase limits. +# If the limits (maxdepth, maxrefs, or maxbytes) are exceeded, the object is rejected. +# +# Each non-array type is allowed or rejected if it matches one of the patterns, +# evaluated from left to right, and is otherwise allowed. Arrays of any +# component type, including subarrays and arrays of primitives, are allowed. +# +# Array construction of any component type, including subarrays and arrays of +# primitives, are allowed unless the length is greater than the maxarray limit. +# The filter is applied to each array element. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# The built-in filter allows subclasses of allowed classes and +# can approximately be represented as the pattern: +# +#sun.rmi.registry.registryFilter=\ +# maxarray=1000000;\ +# maxdepth=20;\ +# java.lang.String;\ +# java.lang.Number;\ +# java.lang.reflect.Proxy;\ +# java.rmi.Remote;\ +# sun.rmi.server.UnicastRef;\ +# sun.rmi.server.RMIClientSocketFactory;\ +# sun.rmi.server.RMIServerSocketFactory;\ +# java.rmi.activation.ActivationID;\ +# java.rmi.server.UID +# +# RMI Distributed Garbage Collector (DGC) Serial Filter +# +# The filter pattern uses the same format as jdk.serialFilter. +# This filter can override the builtin filter if additional types need to be +# allowed or rejected from the RMI DGC. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# The builtin DGC filter can approximately be represented as the filter pattern: +# +#sun.rmi.transport.dgcFilter=\ +# java.rmi.server.ObjID;\ +# java.rmi.server.UID;\ +# java.rmi.dgc.VMID;\ +# java.rmi.dgc.Lease;\ +# maxdepth=5;maxarray=10000 + +# CORBA ORBIorTypeCheckRegistryFilter +# Type check enhancement for ORB::string_to_object processing +# +# An IOR type check filter, if configured, is used by an ORB during +# an ORB::string_to_object invocation to check the veracity of the type encoded +# in the ior string. +# +# The filter pattern consists of a semi-colon separated list of class names. +# The configured list contains the binary class names of the IDL interface types +# corresponding to the IDL stub class to be instantiated. +# As such, a filter specifies a list of IDL stub classes that will be +# allowed by an ORB when an ORB::string_to_object is invoked. +# It is used to specify a white list configuration of acceptable +# IDL stub types which may be contained in a stringified IOR +# parameter passed as input to an ORB::string_to_object method. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +#com.sun.CORBA.ORBIorTypeCheckRegistryFilter=binary_class_name;binary_class_name + +# +# JCEKS Encrypted Key Serial Filter +# +# This filter, if configured, is used by the JCEKS KeyStore during the +# deserialization of the encrypted Key object stored inside a key entry. +# If not configured or the filter result is UNDECIDED (i.e. none of the patterns +# matches), the filter configured by jdk.serialFilter will be consulted. +# +# If the system property jceks.key.serialFilter is also specified, it supersedes +# the security property value defined here. +# +# The filter pattern uses the same format as jdk.serialFilter. The default +# pattern allows java.lang.Enum, java.security.KeyRep, java.security.KeyRep$Type, +# and javax.crypto.spec.SecretKeySpec and rejects all the others. +jceks.key.serialFilter = java.base/java.lang.Enum;java.base/java.security.KeyRep;\ + java.base/java.security.KeyRep$Type;java.base/javax.crypto.spec.SecretKeySpec;!* + +# +# Enhanced exception message information +# +# By default, exception messages should not include potentially sensitive +# information such as file names, host names, or port numbers. This property +# accepts one or more comma separated values, each of which represents a +# category of enhanced exception message information to enable. Values are +# case-insensitive. Leading and trailing whitespaces, surrounding each value, +# are ignored. Unknown values are ignored. +# +# NOTE: Use caution before setting this property. Setting this property +# exposes sensitive information in Exceptions, which could, for example, +# propagate to untrusted code or be emitted in stack traces that are +# inadvertently disclosed and made accessible over a public network. +# +# The categories are: +# +# hostInfo - IOExceptions thrown by java.net.Socket and the socket types in the +# java.nio.channels package will contain enhanced exception +# message information +# +# The property setting in this file can be overridden by a system property of +# the same name, with the same syntax and possible values. +# +#jdk.includeInExceptions=hostInfo diff -Nru pycharm-2018.3.5/jre64/conf/security/policy/limited/default_local.policy pycharm-2019.1/jre64/conf/security/policy/limited/default_local.policy --- pycharm-2018.3.5/jre64/conf/security/policy/limited/default_local.policy 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/security/policy/limited/default_local.policy 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,14 @@ +// Some countries have import limits on crypto strength. This policy file +// is worldwide importable. + +grant { + permission javax.crypto.CryptoPermission "DES", 64; + permission javax.crypto.CryptoPermission "DESede", *; + permission javax.crypto.CryptoPermission "RC2", 128, + "javax.crypto.spec.RC2ParameterSpec", 128; + permission javax.crypto.CryptoPermission "RC4", 128; + permission javax.crypto.CryptoPermission "RC5", 128, + "javax.crypto.spec.RC5ParameterSpec", *, 12, *; + permission javax.crypto.CryptoPermission "RSA", *; + permission javax.crypto.CryptoPermission *, 128; +}; diff -Nru pycharm-2018.3.5/jre64/conf/security/policy/limited/default_US_export.policy pycharm-2019.1/jre64/conf/security/policy/limited/default_US_export.policy --- pycharm-2018.3.5/jre64/conf/security/policy/limited/default_US_export.policy 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/security/policy/limited/default_US_export.policy 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,6 @@ +// Default US Export policy file. + +grant { + // There is no restriction to any algorithms. + permission javax.crypto.CryptoAllPermission; +}; diff -Nru pycharm-2018.3.5/jre64/conf/security/policy/limited/exempt_local.policy pycharm-2019.1/jre64/conf/security/policy/limited/exempt_local.policy --- pycharm-2018.3.5/jre64/conf/security/policy/limited/exempt_local.policy 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/security/policy/limited/exempt_local.policy 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,13 @@ +// Some countries have import limits on crypto strength, but may allow for +// these exemptions if the exemption mechanism is used. + +grant { + // There is no restriction to any algorithms if KeyRecovery is enforced. + permission javax.crypto.CryptoPermission *, "KeyRecovery"; + + // There is no restriction to any algorithms if KeyEscrow is enforced. + permission javax.crypto.CryptoPermission *, "KeyEscrow"; + + // There is no restriction to any algorithms if KeyWeakening is enforced. + permission javax.crypto.CryptoPermission *, "KeyWeakening"; +}; diff -Nru pycharm-2018.3.5/jre64/conf/security/policy/README.txt pycharm-2019.1/jre64/conf/security/policy/README.txt --- pycharm-2018.3.5/jre64/conf/security/policy/README.txt 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/security/policy/README.txt 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,54 @@ + + Java(TM) Cryptography Extension Policy Files + for the Java(TM) Platform, Standard Edition Runtime Environment + + README +------------------------------------------------------------------------ + +Import and export control rules on cryptographic software vary from +country to country. The Java Cryptography Extension (JCE) architecture +allows flexible cryptographic key strength to be configured via the +jurisdiction policy files which are referenced by the "crypto.policy" +security property in the /conf/security/java.security file. + +By default, Java provides two different sets of cryptographic policy +files: + + unlimited: These policy files contain no restrictions on cryptographic + strengths or algorithms + + limited: These policy files contain more restricted cryptographic + strengths + +These files reside in /conf/security/policy in the "unlimited" +or "limited" subdirectories respectively. + +Each subdirectory contains a complete policy configuration, +and subdirectories can be added/edited/removed to reflect your +import or export control product requirements. + +Within a subdirectory, the effective policy is the combined minimum +permissions of the grant statements in the file(s) matching the filename +pattern "default_*.policy". At least one grant is required. For example: + + limited = Export (all) + Import (limited) = Limited + unlimited = Export (all) + Import (all) = Unlimited + +The effective exemption policy is the combined minimum permissions +of the grant statements in the file(s) matching the filename pattern +"exempt_*.policy". Exemption grants are optional. For example: + + limited = grants exemption permissions, by which the + effective policy can be circumvented. + e.g. KeyRecovery/KeyEscrow/KeyWeakening. + +Please see the Java Cryptography Architecture (JCA) documentation for +additional information on these files and formats. + +YOU ARE ADVISED TO CONSULT YOUR EXPORT/IMPORT CONTROL COUNSEL OR ATTORNEY +TO DETERMINE THE EXACT REQUIREMENTS. + +Please note that the JCE for Java SE, including the JCE framework, +cryptographic policy files, and standard JCE providers provided with +the Java SE, have been reviewed and approved for export as mass market +encryption item by the US Bureau of Industry and Security. diff -Nru pycharm-2018.3.5/jre64/conf/security/policy/unlimited/default_local.policy pycharm-2019.1/jre64/conf/security/policy/unlimited/default_local.policy --- pycharm-2018.3.5/jre64/conf/security/policy/unlimited/default_local.policy 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/security/policy/unlimited/default_local.policy 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,6 @@ +// Country-specific policy file for countries with no limits on crypto strength. + +grant { + // There is no restriction to any algorithms. + permission javax.crypto.CryptoAllPermission; +}; diff -Nru pycharm-2018.3.5/jre64/conf/security/policy/unlimited/default_US_export.policy pycharm-2019.1/jre64/conf/security/policy/unlimited/default_US_export.policy --- pycharm-2018.3.5/jre64/conf/security/policy/unlimited/default_US_export.policy 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/security/policy/unlimited/default_US_export.policy 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,6 @@ +// Default US Export policy file. + +grant { + // There is no restriction to any algorithms. + permission javax.crypto.CryptoAllPermission; +}; diff -Nru pycharm-2018.3.5/jre64/conf/sound.properties pycharm-2019.1/jre64/conf/sound.properties --- pycharm-2018.3.5/jre64/conf/sound.properties 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/conf/sound.properties 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,39 @@ +############################################################ +# Sound Configuration File +############################################################ +# +# This properties file is used to specify default service +# providers for javax.sound.midi.MidiSystem and +# javax.sound.sampled.AudioSystem. +# +# The following keys are recognized by MidiSystem methods: +# +# javax.sound.midi.Receiver +# javax.sound.midi.Sequencer +# javax.sound.midi.Synthesizer +# javax.sound.midi.Transmitter +# +# The following keys are recognized by AudioSystem methods: +# +# javax.sound.sampled.Clip +# javax.sound.sampled.Port +# javax.sound.sampled.SourceDataLine +# javax.sound.sampled.TargetDataLine +# +# The values specify the full class name of the service +# provider, or the device name. +# +# See the class descriptions for details. +# +# Example 1: +# Use MyDeviceProvider as default for SourceDataLines: +# javax.sound.sampled.SourceDataLine=com.xyz.MyDeviceProvider +# +# Example 2: +# Specify the default Synthesizer by its name "InternalSynth". +# javax.sound.midi.Synthesizer=#InternalSynth +# +# Example 3: +# Specify the default Receiver by provider and name: +# javax.sound.midi.Receiver=com.sun.media.sound.MidiProvider#SunMIDI1 +# diff -Nru pycharm-2018.3.5/jre64/include/classfile_constants.h pycharm-2019.1/jre64/include/classfile_constants.h --- pycharm-2018.3.5/jre64/include/classfile_constants.h 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/include/classfile_constants.h 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,582 @@ +/* + * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#ifndef CLASSFILE_CONSTANTS_H +#define CLASSFILE_CONSTANTS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Classfile version number for this information */ +#define JVM_CLASSFILE_MAJOR_VERSION 55 +#define JVM_CLASSFILE_MINOR_VERSION 0 + +/* Flags */ + +enum { + JVM_ACC_PUBLIC = 0x0001, + JVM_ACC_PRIVATE = 0x0002, + JVM_ACC_PROTECTED = 0x0004, + JVM_ACC_STATIC = 0x0008, + JVM_ACC_FINAL = 0x0010, + JVM_ACC_SYNCHRONIZED = 0x0020, + JVM_ACC_SUPER = 0x0020, + JVM_ACC_VOLATILE = 0x0040, + JVM_ACC_BRIDGE = 0x0040, + JVM_ACC_TRANSIENT = 0x0080, + JVM_ACC_VARARGS = 0x0080, + JVM_ACC_NATIVE = 0x0100, + JVM_ACC_INTERFACE = 0x0200, + JVM_ACC_ABSTRACT = 0x0400, + JVM_ACC_STRICT = 0x0800, + JVM_ACC_SYNTHETIC = 0x1000, + JVM_ACC_ANNOTATION = 0x2000, + JVM_ACC_ENUM = 0x4000, + JVM_ACC_MODULE = 0x8000 +}; + +#define JVM_ACC_PUBLIC_BIT 0 +#define JVM_ACC_PRIVATE_BIT 1 +#define JVM_ACC_PROTECTED_BIT 2 +#define JVM_ACC_STATIC_BIT 3 +#define JVM_ACC_FINAL_BIT 4 +#define JVM_ACC_SYNCHRONIZED_BIT 5 +#define JVM_ACC_SUPER_BIT 5 +#define JVM_ACC_VOLATILE_BIT 6 +#define JVM_ACC_BRIDGE_BIT 6 +#define JVM_ACC_TRANSIENT_BIT 7 +#define JVM_ACC_VARARGS_BIT 7 +#define JVM_ACC_NATIVE_BIT 8 +#define JVM_ACC_INTERFACE_BIT 9 +#define JVM_ACC_ABSTRACT_BIT 10 +#define JVM_ACC_STRICT_BIT 11 +#define JVM_ACC_SYNTHETIC_BIT 12 +#define JVM_ACC_ANNOTATION_BIT 13 +#define JVM_ACC_ENUM_BIT 14 + +/* Used in newarray instruction. */ + +enum { + JVM_T_BOOLEAN = 4, + JVM_T_CHAR = 5, + JVM_T_FLOAT = 6, + JVM_T_DOUBLE = 7, + JVM_T_BYTE = 8, + JVM_T_SHORT = 9, + JVM_T_INT = 10, + JVM_T_LONG = 11 +}; + +/* Constant Pool Entries */ + +enum { + JVM_CONSTANT_Utf8 = 1, + JVM_CONSTANT_Unicode = 2, /* unused */ + JVM_CONSTANT_Integer = 3, + JVM_CONSTANT_Float = 4, + JVM_CONSTANT_Long = 5, + JVM_CONSTANT_Double = 6, + JVM_CONSTANT_Class = 7, + JVM_CONSTANT_String = 8, + JVM_CONSTANT_Fieldref = 9, + JVM_CONSTANT_Methodref = 10, + JVM_CONSTANT_InterfaceMethodref = 11, + JVM_CONSTANT_NameAndType = 12, + JVM_CONSTANT_MethodHandle = 15, // JSR 292 + JVM_CONSTANT_MethodType = 16, // JSR 292 + JVM_CONSTANT_Dynamic = 17, + JVM_CONSTANT_InvokeDynamic = 18, + JVM_CONSTANT_ExternalMax = 18 +}; + +/* JVM_CONSTANT_MethodHandle subtypes */ +enum { + JVM_REF_getField = 1, + JVM_REF_getStatic = 2, + JVM_REF_putField = 3, + JVM_REF_putStatic = 4, + JVM_REF_invokeVirtual = 5, + JVM_REF_invokeStatic = 6, + JVM_REF_invokeSpecial = 7, + JVM_REF_newInvokeSpecial = 8, + JVM_REF_invokeInterface = 9 +}; + +/* StackMapTable type item numbers */ + +enum { + JVM_ITEM_Top = 0, + JVM_ITEM_Integer = 1, + JVM_ITEM_Float = 2, + JVM_ITEM_Double = 3, + JVM_ITEM_Long = 4, + JVM_ITEM_Null = 5, + JVM_ITEM_UninitializedThis = 6, + JVM_ITEM_Object = 7, + JVM_ITEM_Uninitialized = 8 +}; + +/* Type signatures */ + +enum { + JVM_SIGNATURE_ARRAY = '[', + JVM_SIGNATURE_BYTE = 'B', + JVM_SIGNATURE_CHAR = 'C', + JVM_SIGNATURE_CLASS = 'L', + JVM_SIGNATURE_ENDCLASS = ';', + JVM_SIGNATURE_ENUM = 'E', + JVM_SIGNATURE_FLOAT = 'F', + JVM_SIGNATURE_DOUBLE = 'D', + JVM_SIGNATURE_FUNC = '(', + JVM_SIGNATURE_ENDFUNC = ')', + JVM_SIGNATURE_INT = 'I', + JVM_SIGNATURE_LONG = 'J', + JVM_SIGNATURE_SHORT = 'S', + JVM_SIGNATURE_VOID = 'V', + JVM_SIGNATURE_BOOLEAN = 'Z' +}; + +/* Opcodes */ + +enum { + JVM_OPC_nop = 0, + JVM_OPC_aconst_null = 1, + JVM_OPC_iconst_m1 = 2, + JVM_OPC_iconst_0 = 3, + JVM_OPC_iconst_1 = 4, + JVM_OPC_iconst_2 = 5, + JVM_OPC_iconst_3 = 6, + JVM_OPC_iconst_4 = 7, + JVM_OPC_iconst_5 = 8, + JVM_OPC_lconst_0 = 9, + JVM_OPC_lconst_1 = 10, + JVM_OPC_fconst_0 = 11, + JVM_OPC_fconst_1 = 12, + JVM_OPC_fconst_2 = 13, + JVM_OPC_dconst_0 = 14, + JVM_OPC_dconst_1 = 15, + JVM_OPC_bipush = 16, + JVM_OPC_sipush = 17, + JVM_OPC_ldc = 18, + JVM_OPC_ldc_w = 19, + JVM_OPC_ldc2_w = 20, + JVM_OPC_iload = 21, + JVM_OPC_lload = 22, + JVM_OPC_fload = 23, + JVM_OPC_dload = 24, + JVM_OPC_aload = 25, + JVM_OPC_iload_0 = 26, + JVM_OPC_iload_1 = 27, + JVM_OPC_iload_2 = 28, + JVM_OPC_iload_3 = 29, + JVM_OPC_lload_0 = 30, + JVM_OPC_lload_1 = 31, + JVM_OPC_lload_2 = 32, + JVM_OPC_lload_3 = 33, + JVM_OPC_fload_0 = 34, + JVM_OPC_fload_1 = 35, + JVM_OPC_fload_2 = 36, + JVM_OPC_fload_3 = 37, + JVM_OPC_dload_0 = 38, + JVM_OPC_dload_1 = 39, + JVM_OPC_dload_2 = 40, + JVM_OPC_dload_3 = 41, + JVM_OPC_aload_0 = 42, + JVM_OPC_aload_1 = 43, + JVM_OPC_aload_2 = 44, + JVM_OPC_aload_3 = 45, + JVM_OPC_iaload = 46, + JVM_OPC_laload = 47, + JVM_OPC_faload = 48, + JVM_OPC_daload = 49, + JVM_OPC_aaload = 50, + JVM_OPC_baload = 51, + JVM_OPC_caload = 52, + JVM_OPC_saload = 53, + JVM_OPC_istore = 54, + JVM_OPC_lstore = 55, + JVM_OPC_fstore = 56, + JVM_OPC_dstore = 57, + JVM_OPC_astore = 58, + JVM_OPC_istore_0 = 59, + JVM_OPC_istore_1 = 60, + JVM_OPC_istore_2 = 61, + JVM_OPC_istore_3 = 62, + JVM_OPC_lstore_0 = 63, + JVM_OPC_lstore_1 = 64, + JVM_OPC_lstore_2 = 65, + JVM_OPC_lstore_3 = 66, + JVM_OPC_fstore_0 = 67, + JVM_OPC_fstore_1 = 68, + JVM_OPC_fstore_2 = 69, + JVM_OPC_fstore_3 = 70, + JVM_OPC_dstore_0 = 71, + JVM_OPC_dstore_1 = 72, + JVM_OPC_dstore_2 = 73, + JVM_OPC_dstore_3 = 74, + JVM_OPC_astore_0 = 75, + JVM_OPC_astore_1 = 76, + JVM_OPC_astore_2 = 77, + JVM_OPC_astore_3 = 78, + JVM_OPC_iastore = 79, + JVM_OPC_lastore = 80, + JVM_OPC_fastore = 81, + JVM_OPC_dastore = 82, + JVM_OPC_aastore = 83, + JVM_OPC_bastore = 84, + JVM_OPC_castore = 85, + JVM_OPC_sastore = 86, + JVM_OPC_pop = 87, + JVM_OPC_pop2 = 88, + JVM_OPC_dup = 89, + JVM_OPC_dup_x1 = 90, + JVM_OPC_dup_x2 = 91, + JVM_OPC_dup2 = 92, + JVM_OPC_dup2_x1 = 93, + JVM_OPC_dup2_x2 = 94, + JVM_OPC_swap = 95, + JVM_OPC_iadd = 96, + JVM_OPC_ladd = 97, + JVM_OPC_fadd = 98, + JVM_OPC_dadd = 99, + JVM_OPC_isub = 100, + JVM_OPC_lsub = 101, + JVM_OPC_fsub = 102, + JVM_OPC_dsub = 103, + JVM_OPC_imul = 104, + JVM_OPC_lmul = 105, + JVM_OPC_fmul = 106, + JVM_OPC_dmul = 107, + JVM_OPC_idiv = 108, + JVM_OPC_ldiv = 109, + JVM_OPC_fdiv = 110, + JVM_OPC_ddiv = 111, + JVM_OPC_irem = 112, + JVM_OPC_lrem = 113, + JVM_OPC_frem = 114, + JVM_OPC_drem = 115, + JVM_OPC_ineg = 116, + JVM_OPC_lneg = 117, + JVM_OPC_fneg = 118, + JVM_OPC_dneg = 119, + JVM_OPC_ishl = 120, + JVM_OPC_lshl = 121, + JVM_OPC_ishr = 122, + JVM_OPC_lshr = 123, + JVM_OPC_iushr = 124, + JVM_OPC_lushr = 125, + JVM_OPC_iand = 126, + JVM_OPC_land = 127, + JVM_OPC_ior = 128, + JVM_OPC_lor = 129, + JVM_OPC_ixor = 130, + JVM_OPC_lxor = 131, + JVM_OPC_iinc = 132, + JVM_OPC_i2l = 133, + JVM_OPC_i2f = 134, + JVM_OPC_i2d = 135, + JVM_OPC_l2i = 136, + JVM_OPC_l2f = 137, + JVM_OPC_l2d = 138, + JVM_OPC_f2i = 139, + JVM_OPC_f2l = 140, + JVM_OPC_f2d = 141, + JVM_OPC_d2i = 142, + JVM_OPC_d2l = 143, + JVM_OPC_d2f = 144, + JVM_OPC_i2b = 145, + JVM_OPC_i2c = 146, + JVM_OPC_i2s = 147, + JVM_OPC_lcmp = 148, + JVM_OPC_fcmpl = 149, + JVM_OPC_fcmpg = 150, + JVM_OPC_dcmpl = 151, + JVM_OPC_dcmpg = 152, + JVM_OPC_ifeq = 153, + JVM_OPC_ifne = 154, + JVM_OPC_iflt = 155, + JVM_OPC_ifge = 156, + JVM_OPC_ifgt = 157, + JVM_OPC_ifle = 158, + JVM_OPC_if_icmpeq = 159, + JVM_OPC_if_icmpne = 160, + JVM_OPC_if_icmplt = 161, + JVM_OPC_if_icmpge = 162, + JVM_OPC_if_icmpgt = 163, + JVM_OPC_if_icmple = 164, + JVM_OPC_if_acmpeq = 165, + JVM_OPC_if_acmpne = 166, + JVM_OPC_goto = 167, + JVM_OPC_jsr = 168, + JVM_OPC_ret = 169, + JVM_OPC_tableswitch = 170, + JVM_OPC_lookupswitch = 171, + JVM_OPC_ireturn = 172, + JVM_OPC_lreturn = 173, + JVM_OPC_freturn = 174, + JVM_OPC_dreturn = 175, + JVM_OPC_areturn = 176, + JVM_OPC_return = 177, + JVM_OPC_getstatic = 178, + JVM_OPC_putstatic = 179, + JVM_OPC_getfield = 180, + JVM_OPC_putfield = 181, + JVM_OPC_invokevirtual = 182, + JVM_OPC_invokespecial = 183, + JVM_OPC_invokestatic = 184, + JVM_OPC_invokeinterface = 185, + JVM_OPC_invokedynamic = 186, + JVM_OPC_new = 187, + JVM_OPC_newarray = 188, + JVM_OPC_anewarray = 189, + JVM_OPC_arraylength = 190, + JVM_OPC_athrow = 191, + JVM_OPC_checkcast = 192, + JVM_OPC_instanceof = 193, + JVM_OPC_monitorenter = 194, + JVM_OPC_monitorexit = 195, + JVM_OPC_wide = 196, + JVM_OPC_multianewarray = 197, + JVM_OPC_ifnull = 198, + JVM_OPC_ifnonnull = 199, + JVM_OPC_goto_w = 200, + JVM_OPC_jsr_w = 201, + JVM_OPC_MAX = 201 +}; + +/* Opcode length initializer, use with something like: + * unsigned char opcode_length[JVM_OPC_MAX+1] = JVM_OPCODE_LENGTH_INITIALIZER; + */ +#define JVM_OPCODE_LENGTH_INITIALIZER { \ + 1, /* nop */ \ + 1, /* aconst_null */ \ + 1, /* iconst_m1 */ \ + 1, /* iconst_0 */ \ + 1, /* iconst_1 */ \ + 1, /* iconst_2 */ \ + 1, /* iconst_3 */ \ + 1, /* iconst_4 */ \ + 1, /* iconst_5 */ \ + 1, /* lconst_0 */ \ + 1, /* lconst_1 */ \ + 1, /* fconst_0 */ \ + 1, /* fconst_1 */ \ + 1, /* fconst_2 */ \ + 1, /* dconst_0 */ \ + 1, /* dconst_1 */ \ + 2, /* bipush */ \ + 3, /* sipush */ \ + 2, /* ldc */ \ + 3, /* ldc_w */ \ + 3, /* ldc2_w */ \ + 2, /* iload */ \ + 2, /* lload */ \ + 2, /* fload */ \ + 2, /* dload */ \ + 2, /* aload */ \ + 1, /* iload_0 */ \ + 1, /* iload_1 */ \ + 1, /* iload_2 */ \ + 1, /* iload_3 */ \ + 1, /* lload_0 */ \ + 1, /* lload_1 */ \ + 1, /* lload_2 */ \ + 1, /* lload_3 */ \ + 1, /* fload_0 */ \ + 1, /* fload_1 */ \ + 1, /* fload_2 */ \ + 1, /* fload_3 */ \ + 1, /* dload_0 */ \ + 1, /* dload_1 */ \ + 1, /* dload_2 */ \ + 1, /* dload_3 */ \ + 1, /* aload_0 */ \ + 1, /* aload_1 */ \ + 1, /* aload_2 */ \ + 1, /* aload_3 */ \ + 1, /* iaload */ \ + 1, /* laload */ \ + 1, /* faload */ \ + 1, /* daload */ \ + 1, /* aaload */ \ + 1, /* baload */ \ + 1, /* caload */ \ + 1, /* saload */ \ + 2, /* istore */ \ + 2, /* lstore */ \ + 2, /* fstore */ \ + 2, /* dstore */ \ + 2, /* astore */ \ + 1, /* istore_0 */ \ + 1, /* istore_1 */ \ + 1, /* istore_2 */ \ + 1, /* istore_3 */ \ + 1, /* lstore_0 */ \ + 1, /* lstore_1 */ \ + 1, /* lstore_2 */ \ + 1, /* lstore_3 */ \ + 1, /* fstore_0 */ \ + 1, /* fstore_1 */ \ + 1, /* fstore_2 */ \ + 1, /* fstore_3 */ \ + 1, /* dstore_0 */ \ + 1, /* dstore_1 */ \ + 1, /* dstore_2 */ \ + 1, /* dstore_3 */ \ + 1, /* astore_0 */ \ + 1, /* astore_1 */ \ + 1, /* astore_2 */ \ + 1, /* astore_3 */ \ + 1, /* iastore */ \ + 1, /* lastore */ \ + 1, /* fastore */ \ + 1, /* dastore */ \ + 1, /* aastore */ \ + 1, /* bastore */ \ + 1, /* castore */ \ + 1, /* sastore */ \ + 1, /* pop */ \ + 1, /* pop2 */ \ + 1, /* dup */ \ + 1, /* dup_x1 */ \ + 1, /* dup_x2 */ \ + 1, /* dup2 */ \ + 1, /* dup2_x1 */ \ + 1, /* dup2_x2 */ \ + 1, /* swap */ \ + 1, /* iadd */ \ + 1, /* ladd */ \ + 1, /* fadd */ \ + 1, /* dadd */ \ + 1, /* isub */ \ + 1, /* lsub */ \ + 1, /* fsub */ \ + 1, /* dsub */ \ + 1, /* imul */ \ + 1, /* lmul */ \ + 1, /* fmul */ \ + 1, /* dmul */ \ + 1, /* idiv */ \ + 1, /* ldiv */ \ + 1, /* fdiv */ \ + 1, /* ddiv */ \ + 1, /* irem */ \ + 1, /* lrem */ \ + 1, /* frem */ \ + 1, /* drem */ \ + 1, /* ineg */ \ + 1, /* lneg */ \ + 1, /* fneg */ \ + 1, /* dneg */ \ + 1, /* ishl */ \ + 1, /* lshl */ \ + 1, /* ishr */ \ + 1, /* lshr */ \ + 1, /* iushr */ \ + 1, /* lushr */ \ + 1, /* iand */ \ + 1, /* land */ \ + 1, /* ior */ \ + 1, /* lor */ \ + 1, /* ixor */ \ + 1, /* lxor */ \ + 3, /* iinc */ \ + 1, /* i2l */ \ + 1, /* i2f */ \ + 1, /* i2d */ \ + 1, /* l2i */ \ + 1, /* l2f */ \ + 1, /* l2d */ \ + 1, /* f2i */ \ + 1, /* f2l */ \ + 1, /* f2d */ \ + 1, /* d2i */ \ + 1, /* d2l */ \ + 1, /* d2f */ \ + 1, /* i2b */ \ + 1, /* i2c */ \ + 1, /* i2s */ \ + 1, /* lcmp */ \ + 1, /* fcmpl */ \ + 1, /* fcmpg */ \ + 1, /* dcmpl */ \ + 1, /* dcmpg */ \ + 3, /* ifeq */ \ + 3, /* ifne */ \ + 3, /* iflt */ \ + 3, /* ifge */ \ + 3, /* ifgt */ \ + 3, /* ifle */ \ + 3, /* if_icmpeq */ \ + 3, /* if_icmpne */ \ + 3, /* if_icmplt */ \ + 3, /* if_icmpge */ \ + 3, /* if_icmpgt */ \ + 3, /* if_icmple */ \ + 3, /* if_acmpeq */ \ + 3, /* if_acmpne */ \ + 3, /* goto */ \ + 3, /* jsr */ \ + 2, /* ret */ \ + 99, /* tableswitch */ \ + 99, /* lookupswitch */ \ + 1, /* ireturn */ \ + 1, /* lreturn */ \ + 1, /* freturn */ \ + 1, /* dreturn */ \ + 1, /* areturn */ \ + 1, /* return */ \ + 3, /* getstatic */ \ + 3, /* putstatic */ \ + 3, /* getfield */ \ + 3, /* putfield */ \ + 3, /* invokevirtual */ \ + 3, /* invokespecial */ \ + 3, /* invokestatic */ \ + 5, /* invokeinterface */ \ + 5, /* invokedynamic */ \ + 3, /* new */ \ + 2, /* newarray */ \ + 3, /* anewarray */ \ + 1, /* arraylength */ \ + 1, /* athrow */ \ + 3, /* checkcast */ \ + 3, /* instanceof */ \ + 1, /* monitorenter */ \ + 1, /* monitorexit */ \ + 0, /* wide */ \ + 4, /* multianewarray */ \ + 3, /* ifnull */ \ + 3, /* ifnonnull */ \ + 5, /* goto_w */ \ + 5 /* jsr_w */ \ +} + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* CLASSFILE_CONSTANTS */ diff -Nru pycharm-2018.3.5/jre64/include/jawt.h pycharm-2019.1/jre64/include/jawt.h --- pycharm-2018.3.5/jre64/include/jawt.h 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/include/jawt.h 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,356 @@ +/* + * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#ifndef _JAVASOFT_JAWT_H_ +#define _JAVASOFT_JAWT_H_ + +#include "jni.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * AWT native interface. + * + * The AWT native interface allows a native C or C++ application a means + * by which to access native structures in AWT. This is to facilitate moving + * legacy C and C++ applications to Java and to target the needs of the + * developers who need to do their own native rendering to canvases + * for performance or other reasons. + * + * Conversely it also provides mechanisms for an application which already + * has a native window to provide that to AWT for AWT rendering. + * + * Since every platform may be different in its native data structures + * and APIs for windowing systems the application must necessarily + * provided per-platform source and compile and deliver per-platform + * native code to use this API. + * + * These interfaces are not part of the Java SE specification and + * a VM is not required to implement this API. However it is strongly + * recommended that all implementations which support headful AWT + * also support these interfaces. + * + */ + +/* + * AWT Native Drawing Surface (JAWT_DrawingSurface). + * + * For each platform, there is a native drawing surface structure. This + * platform-specific structure can be found in jawt_md.h. It is recommended + * that additional platforms follow the same model. It is also recommended + * that VMs on all platforms support the existing structures in jawt_md.h. + * + ******************* + * EXAMPLE OF USAGE: + ******************* + * + * In Win32, a programmer wishes to access the HWND of a canvas to perform + * native rendering into it. The programmer has declared the paint() method + * for their canvas subclass to be native: + * + * + * MyCanvas.java: + * + * import java.awt.*; + * + * public class MyCanvas extends Canvas { + * + * static { + * System.loadLibrary("mylib"); + * } + * + * public native void paint(Graphics g); + * } + * + * + * myfile.c: + * + * #include "jawt_md.h" + * #include + * + * JNIEXPORT void JNICALL + * Java_MyCanvas_paint(JNIEnv* env, jobject canvas, jobject graphics) + * { + * JAWT awt; + * JAWT_DrawingSurface* ds; + * JAWT_DrawingSurfaceInfo* dsi; + * JAWT_Win32DrawingSurfaceInfo* dsi_win; + * jboolean result; + * jint lock; + * + * // Get the AWT. Request version 9 to access features in that release. + * awt.version = JAWT_VERSION_9; + * result = JAWT_GetAWT(env, &awt); + * assert(result != JNI_FALSE); + * + * // Get the drawing surface + * ds = awt.GetDrawingSurface(env, canvas); + * assert(ds != NULL); + * + * // Lock the drawing surface + * lock = ds->Lock(ds); + * assert((lock & JAWT_LOCK_ERROR) == 0); + * + * // Get the drawing surface info + * dsi = ds->GetDrawingSurfaceInfo(ds); + * + * // Get the platform-specific drawing info + * dsi_win = (JAWT_Win32DrawingSurfaceInfo*)dsi->platformInfo; + * + * ////////////////////////////// + * // !!! DO PAINTING HERE !!! // + * ////////////////////////////// + * + * // Free the drawing surface info + * ds->FreeDrawingSurfaceInfo(dsi); + * + * // Unlock the drawing surface + * ds->Unlock(ds); + * + * // Free the drawing surface + * awt.FreeDrawingSurface(ds); + * } + * + */ + +/* + * JAWT_Rectangle + * Structure for a native rectangle. + */ +typedef struct jawt_Rectangle { + jint x; + jint y; + jint width; + jint height; +} JAWT_Rectangle; + +struct jawt_DrawingSurface; + +/* + * JAWT_DrawingSurfaceInfo + * Structure for containing the underlying drawing information of a component. + */ +typedef struct jawt_DrawingSurfaceInfo { + /* + * Pointer to the platform-specific information. This can be safely + * cast to a JAWT_Win32DrawingSurfaceInfo on Windows or a + * JAWT_X11DrawingSurfaceInfo on Linux and Solaris. On Mac OS X this is a + * pointer to a NSObject that conforms to the JAWT_SurfaceLayers + * protocol. See jawt_md.h for details. + */ + void* platformInfo; + /* Cached pointer to the underlying drawing surface */ + struct jawt_DrawingSurface* ds; + /* Bounding rectangle of the drawing surface */ + JAWT_Rectangle bounds; + /* Number of rectangles in the clip */ + jint clipSize; + /* Clip rectangle array */ + JAWT_Rectangle* clip; +} JAWT_DrawingSurfaceInfo; + +#define JAWT_LOCK_ERROR 0x00000001 +#define JAWT_LOCK_CLIP_CHANGED 0x00000002 +#define JAWT_LOCK_BOUNDS_CHANGED 0x00000004 +#define JAWT_LOCK_SURFACE_CHANGED 0x00000008 + +/* + * JAWT_DrawingSurface + * Structure for containing the underlying drawing information of a component. + * All operations on a JAWT_DrawingSurface MUST be performed from the same + * thread as the call to GetDrawingSurface. + */ +typedef struct jawt_DrawingSurface { + /* + * Cached reference to the Java environment of the calling thread. + * If Lock(), Unlock(), GetDrawingSurfaceInfo() or + * FreeDrawingSurfaceInfo() are called from a different thread, + * this data member should be set before calling those functions. + */ + JNIEnv* env; + /* Cached reference to the target object */ + jobject target; + /* + * Lock the surface of the target component for native rendering. + * When finished drawing, the surface must be unlocked with + * Unlock(). This function returns a bitmask with one or more of the + * following values: + * + * JAWT_LOCK_ERROR - When an error has occurred and the surface could not + * be locked. + * + * JAWT_LOCK_CLIP_CHANGED - When the clip region has changed. + * + * JAWT_LOCK_BOUNDS_CHANGED - When the bounds of the surface have changed. + * + * JAWT_LOCK_SURFACE_CHANGED - When the surface itself has changed + */ + jint (JNICALL *Lock) + (struct jawt_DrawingSurface* ds); + /* + * Get the drawing surface info. + * The value returned may be cached, but the values may change if + * additional calls to Lock() or Unlock() are made. + * Lock() must be called before this can return a valid value. + * Returns NULL if an error has occurred. + * When finished with the returned value, FreeDrawingSurfaceInfo must be + * called. + */ + JAWT_DrawingSurfaceInfo* (JNICALL *GetDrawingSurfaceInfo) + (struct jawt_DrawingSurface* ds); + /* + * Free the drawing surface info. + */ + void (JNICALL *FreeDrawingSurfaceInfo) + (JAWT_DrawingSurfaceInfo* dsi); + /* + * Unlock the drawing surface of the target component for native rendering. + */ + void (JNICALL *Unlock) + (struct jawt_DrawingSurface* ds); +} JAWT_DrawingSurface; + +/* + * JAWT + * Structure for containing native AWT functions. + */ +typedef struct jawt { + /* + * Version of this structure. This must always be set before + * calling JAWT_GetAWT(). It affects the functions returned. + * Must be one of the known pre-defined versions. + */ + jint version; + /* + * Return a drawing surface from a target jobject. This value + * may be cached. + * Returns NULL if an error has occurred. + * Target must be a java.awt.Component (should be a Canvas + * or Window for native rendering). + * FreeDrawingSurface() must be called when finished with the + * returned JAWT_DrawingSurface. + */ + JAWT_DrawingSurface* (JNICALL *GetDrawingSurface) + (JNIEnv* env, jobject target); + /* + * Free the drawing surface allocated in GetDrawingSurface. + */ + void (JNICALL *FreeDrawingSurface) + (JAWT_DrawingSurface* ds); + /* + * Since 1.4 + * Locks the entire AWT for synchronization purposes + */ + void (JNICALL *Lock)(JNIEnv* env); + /* + * Since 1.4 + * Unlocks the entire AWT for synchronization purposes + */ + void (JNICALL *Unlock)(JNIEnv* env); + /* + * Since 1.4 + * Returns a reference to a java.awt.Component from a native + * platform handle. On Windows, this corresponds to an HWND; + * on Solaris and Linux, this is a Drawable. For other platforms, + * see the appropriate machine-dependent header file for a description. + * The reference returned by this function is a local + * reference that is only valid in this environment. + * This function returns a NULL reference if no component could be + * found with matching platform information. + */ + jobject (JNICALL *GetComponent)(JNIEnv* env, void* platformInfo); + + /** + * Since 9 + * Creates a java.awt.Frame placed in a native container. Container is + * referenced by the native platform handle. For example on Windows this + * corresponds to an HWND. For other platforms, see the appropriate + * machine-dependent header file for a description. The reference returned + * by this function is a local reference that is only valid in this + * environment. This function returns a NULL reference if no frame could be + * created with matching platform information. + */ + jobject (JNICALL *CreateEmbeddedFrame) (JNIEnv *env, void* platformInfo); + + /** + * Since 9 + * Moves and resizes the embedded frame. The new location of the top-left + * corner is specified by x and y parameters relative to the native parent + * component. The new size is specified by width and height. + * + * The embedded frame should be created by CreateEmbeddedFrame() method, or + * this function will not have any effect. + * + * java.awt.Component.setLocation() and java.awt.Component.setBounds() for + * EmbeddedFrame really don't move it within the native parent. These + * methods always locate the embedded frame at (0, 0) for backward + * compatibility. To allow moving embedded frames this method was + * introduced, and it works just the same way as setLocation() and + * setBounds() for usual, non-embedded components. + * + * Using usual get/setLocation() and get/setBounds() together with this new + * method is not recommended. + */ + void (JNICALL *SetBounds) (JNIEnv *env, jobject embeddedFrame, + jint x, jint y, jint w, jint h); + /** + * Since 9 + * Synthesize a native message to activate or deactivate an EmbeddedFrame + * window depending on the value of parameter doActivate, if "true" + * activates the window; otherwise, deactivates the window. + * + * The embedded frame should be created by CreateEmbeddedFrame() method, or + * this function will not have any effect. + */ + void (JNICALL *SynthesizeWindowActivation) (JNIEnv *env, + jobject embeddedFrame, jboolean doActivate); +} JAWT; + +/* + * Get the AWT native structure. This function returns JNI_FALSE if + * an error occurs. + */ +_JNI_IMPORT_OR_EXPORT_ +jboolean JNICALL JAWT_GetAWT(JNIEnv* env, JAWT* awt); + +/* + * Specify one of these constants as the JAWT.version + * Specifying an earlier version will limit the available functions to + * those provided in that earlier version of JAWT. + * See the "Since" note on each API. Methods with no "Since" + * may be presumed to be present in JAWT_VERSION_1_3. + */ +#define JAWT_VERSION_1_3 0x00010003 +#define JAWT_VERSION_1_4 0x00010004 +#define JAWT_VERSION_1_7 0x00010007 +#define JAWT_VERSION_9 0x00090000 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !_JAVASOFT_JAWT_H_ */ diff -Nru pycharm-2018.3.5/jre64/include/jdwpTransport.h pycharm-2019.1/jre64/include/jdwpTransport.h --- pycharm-2018.3.5/jre64/include/jdwpTransport.h 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/include/jdwpTransport.h 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,276 @@ +/* + * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * Java Debug Wire Protocol Transport Service Provider Interface. + */ + +#ifndef JDWPTRANSPORT_H +#define JDWPTRANSPORT_H + +#include "jni.h" + +enum { + JDWPTRANSPORT_VERSION_1_0 = 0x00010000, + JDWPTRANSPORT_VERSION_1_1 = 0x00010001 +}; + +#ifdef __cplusplus +extern "C" { +#endif + +struct jdwpTransportNativeInterface_; + +struct _jdwpTransportEnv; + +#ifdef __cplusplus +typedef _jdwpTransportEnv jdwpTransportEnv; +#else +typedef const struct jdwpTransportNativeInterface_ *jdwpTransportEnv; +#endif /* __cplusplus */ + +/* + * Errors. Universal errors with JVMTI/JVMDI equivalents keep the + * values the same. + */ +typedef enum { + JDWPTRANSPORT_ERROR_NONE = 0, + JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT = 103, + JDWPTRANSPORT_ERROR_OUT_OF_MEMORY = 110, + JDWPTRANSPORT_ERROR_INTERNAL = 113, + JDWPTRANSPORT_ERROR_ILLEGAL_STATE = 201, + JDWPTRANSPORT_ERROR_IO_ERROR = 202, + JDWPTRANSPORT_ERROR_TIMEOUT = 203, + JDWPTRANSPORT_ERROR_MSG_NOT_AVAILABLE = 204 +} jdwpTransportError; + + +/* + * Structure to define capabilities + */ +typedef struct { + unsigned int can_timeout_attach :1; + unsigned int can_timeout_accept :1; + unsigned int can_timeout_handshake :1; + unsigned int reserved3 :1; + unsigned int reserved4 :1; + unsigned int reserved5 :1; + unsigned int reserved6 :1; + unsigned int reserved7 :1; + unsigned int reserved8 :1; + unsigned int reserved9 :1; + unsigned int reserved10 :1; + unsigned int reserved11 :1; + unsigned int reserved12 :1; + unsigned int reserved13 :1; + unsigned int reserved14 :1; + unsigned int reserved15 :1; +} JDWPTransportCapabilities; + + +/* + * Structures to define packet layout. + * + * See: http://java.sun.com/j2se/1.5/docs/guide/jpda/jdwp-spec.html + */ + +#define JDWP_HEADER_SIZE 11 + +enum { + /* + * If additional flags are added that apply to jdwpCmdPacket, + * then debugLoop.c: reader() will need to be updated to + * accept more than JDWPTRANSPORT_FLAGS_NONE. + */ + JDWPTRANSPORT_FLAGS_NONE = 0x0, + JDWPTRANSPORT_FLAGS_REPLY = 0x80 +}; + +typedef struct { + jint len; + jint id; + jbyte flags; + jbyte cmdSet; + jbyte cmd; + jbyte *data; +} jdwpCmdPacket; + +typedef struct { + jint len; + jint id; + jbyte flags; + jshort errorCode; + jbyte *data; +} jdwpReplyPacket; + +typedef struct { + union { + jdwpCmdPacket cmd; + jdwpReplyPacket reply; + } type; +} jdwpPacket; + +/* + * JDWP functions called by the transport. + */ +typedef struct jdwpTransportCallback { + void *(*alloc)(jint numBytes); /* Call this for all allocations */ + void (*free)(void *buffer); /* Call this for all deallocations */ +} jdwpTransportCallback; + +typedef jint (JNICALL *jdwpTransport_OnLoad_t)(JavaVM *jvm, + jdwpTransportCallback *callback, + jint version, + jdwpTransportEnv** env); + +/* + * JDWP transport configuration from the agent. + */ +typedef struct jdwpTransportConfiguration { + /* Field added in JDWPTRANSPORT_VERSION_1_1: */ + const char* allowed_peers; /* Peers allowed for connection */ +} jdwpTransportConfiguration; + + +/* Function Interface */ + +struct jdwpTransportNativeInterface_ { + /* 1 : RESERVED */ + void *reserved1; + + /* 2 : Get Capabilities */ + jdwpTransportError (JNICALL *GetCapabilities)(jdwpTransportEnv* env, + JDWPTransportCapabilities *capabilities_ptr); + + /* 3 : Attach */ + jdwpTransportError (JNICALL *Attach)(jdwpTransportEnv* env, + const char* address, + jlong attach_timeout, + jlong handshake_timeout); + + /* 4: StartListening */ + jdwpTransportError (JNICALL *StartListening)(jdwpTransportEnv* env, + const char* address, + char** actual_address); + + /* 5: StopListening */ + jdwpTransportError (JNICALL *StopListening)(jdwpTransportEnv* env); + + /* 6: Accept */ + jdwpTransportError (JNICALL *Accept)(jdwpTransportEnv* env, + jlong accept_timeout, + jlong handshake_timeout); + + /* 7: IsOpen */ + jboolean (JNICALL *IsOpen)(jdwpTransportEnv* env); + + /* 8: Close */ + jdwpTransportError (JNICALL *Close)(jdwpTransportEnv* env); + + /* 9: ReadPacket */ + jdwpTransportError (JNICALL *ReadPacket)(jdwpTransportEnv* env, + jdwpPacket *pkt); + + /* 10: Write Packet */ + jdwpTransportError (JNICALL *WritePacket)(jdwpTransportEnv* env, + const jdwpPacket* pkt); + + /* 11: GetLastError */ + jdwpTransportError (JNICALL *GetLastError)(jdwpTransportEnv* env, + char** error); + + /* 12: SetTransportConfiguration added in JDWPTRANSPORT_VERSION_1_1 */ + jdwpTransportError (JNICALL *SetTransportConfiguration)(jdwpTransportEnv* env, + jdwpTransportConfiguration *config); +}; + + +/* + * Use inlined functions so that C++ code can use syntax such as + * env->Attach("mymachine:5000", 10*1000, 0); + * + * rather than using C's :- + * + * (*env)->Attach(env, "mymachine:5000", 10*1000, 0); + */ +struct _jdwpTransportEnv { + const struct jdwpTransportNativeInterface_ *functions; +#ifdef __cplusplus + + jdwpTransportError GetCapabilities(JDWPTransportCapabilities *capabilities_ptr) { + return functions->GetCapabilities(this, capabilities_ptr); + } + + jdwpTransportError Attach(const char* address, jlong attach_timeout, + jlong handshake_timeout) { + return functions->Attach(this, address, attach_timeout, handshake_timeout); + } + + jdwpTransportError StartListening(const char* address, + char** actual_address) { + return functions->StartListening(this, address, actual_address); + } + + jdwpTransportError StopListening(void) { + return functions->StopListening(this); + } + + jdwpTransportError Accept(jlong accept_timeout, jlong handshake_timeout) { + return functions->Accept(this, accept_timeout, handshake_timeout); + } + + jboolean IsOpen(void) { + return functions->IsOpen(this); + } + + jdwpTransportError Close(void) { + return functions->Close(this); + } + + jdwpTransportError ReadPacket(jdwpPacket *pkt) { + return functions->ReadPacket(this, pkt); + } + + jdwpTransportError WritePacket(const jdwpPacket* pkt) { + return functions->WritePacket(this, pkt); + } + + jdwpTransportError GetLastError(char** error) { + return functions->GetLastError(this, error); + } + + /* SetTransportConfiguration added in JDWPTRANSPORT_VERSION_1_1 */ + jdwpTransportError SetTransportConfiguration(jdwpTransportEnv* env, + return functions->SetTransportConfiguration(this, config); + } + +#endif /* __cplusplus */ +}; + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* JDWPTRANSPORT_H */ diff -Nru pycharm-2018.3.5/jre64/include/jni.h pycharm-2019.1/jre64/include/jni.h --- pycharm-2018.3.5/jre64/include/jni.h 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/include/jni.h 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,1973 @@ +/* + * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * We used part of Netscape's Java Runtime Interface (JRI) as the starting + * point of our design and implementation. + */ + +/****************************************************************************** + * Java Runtime Interface + * Copyright (c) 1996 Netscape Communications Corporation. All rights reserved. + *****************************************************************************/ + +#ifndef _JAVASOFT_JNI_H_ +#define _JAVASOFT_JNI_H_ + +#include +#include + +/* jni_md.h contains the machine-dependent typedefs for jbyte, jint + and jlong */ + +#include "jni_md.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * JNI Types + */ + +#ifndef JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H + +typedef unsigned char jboolean; +typedef unsigned short jchar; +typedef short jshort; +typedef float jfloat; +typedef double jdouble; + +typedef jint jsize; + +#ifdef __cplusplus + +class _jobject {}; +class _jclass : public _jobject {}; +class _jthrowable : public _jobject {}; +class _jstring : public _jobject {}; +class _jarray : public _jobject {}; +class _jbooleanArray : public _jarray {}; +class _jbyteArray : public _jarray {}; +class _jcharArray : public _jarray {}; +class _jshortArray : public _jarray {}; +class _jintArray : public _jarray {}; +class _jlongArray : public _jarray {}; +class _jfloatArray : public _jarray {}; +class _jdoubleArray : public _jarray {}; +class _jobjectArray : public _jarray {}; + +typedef _jobject *jobject; +typedef _jclass *jclass; +typedef _jthrowable *jthrowable; +typedef _jstring *jstring; +typedef _jarray *jarray; +typedef _jbooleanArray *jbooleanArray; +typedef _jbyteArray *jbyteArray; +typedef _jcharArray *jcharArray; +typedef _jshortArray *jshortArray; +typedef _jintArray *jintArray; +typedef _jlongArray *jlongArray; +typedef _jfloatArray *jfloatArray; +typedef _jdoubleArray *jdoubleArray; +typedef _jobjectArray *jobjectArray; + +#else + +struct _jobject; + +typedef struct _jobject *jobject; +typedef jobject jclass; +typedef jobject jthrowable; +typedef jobject jstring; +typedef jobject jarray; +typedef jarray jbooleanArray; +typedef jarray jbyteArray; +typedef jarray jcharArray; +typedef jarray jshortArray; +typedef jarray jintArray; +typedef jarray jlongArray; +typedef jarray jfloatArray; +typedef jarray jdoubleArray; +typedef jarray jobjectArray; + +#endif + +typedef jobject jweak; + +typedef union jvalue { + jboolean z; + jbyte b; + jchar c; + jshort s; + jint i; + jlong j; + jfloat f; + jdouble d; + jobject l; +} jvalue; + +struct _jfieldID; +typedef struct _jfieldID *jfieldID; + +struct _jmethodID; +typedef struct _jmethodID *jmethodID; + +/* Return values from jobjectRefType */ +typedef enum _jobjectType { + JNIInvalidRefType = 0, + JNILocalRefType = 1, + JNIGlobalRefType = 2, + JNIWeakGlobalRefType = 3 +} jobjectRefType; + + +#endif /* JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H */ + +/* + * jboolean constants + */ + +#define JNI_FALSE 0 +#define JNI_TRUE 1 + +/* + * possible return values for JNI functions. + */ + +#define JNI_OK 0 /* success */ +#define JNI_ERR (-1) /* unknown error */ +#define JNI_EDETACHED (-2) /* thread detached from the VM */ +#define JNI_EVERSION (-3) /* JNI version error */ +#define JNI_ENOMEM (-4) /* not enough memory */ +#define JNI_EEXIST (-5) /* VM already created */ +#define JNI_EINVAL (-6) /* invalid arguments */ + +/* + * used in ReleaseScalarArrayElements + */ + +#define JNI_COMMIT 1 +#define JNI_ABORT 2 + +/* + * used in RegisterNatives to describe native method name, signature, + * and function pointer. + */ + +typedef struct { + char *name; + char *signature; + void *fnPtr; +} JNINativeMethod; + +/* + * JNI Native Method Interface. + */ + +struct JNINativeInterface_; + +struct JNIEnv_; + +#ifdef __cplusplus +typedef JNIEnv_ JNIEnv; +#else +typedef const struct JNINativeInterface_ *JNIEnv; +#endif + +/* + * JNI Invocation Interface. + */ + +struct JNIInvokeInterface_; + +struct JavaVM_; + +#ifdef __cplusplus +typedef JavaVM_ JavaVM; +#else +typedef const struct JNIInvokeInterface_ *JavaVM; +#endif + +struct JNINativeInterface_ { + void *reserved0; + void *reserved1; + void *reserved2; + + void *reserved3; + jint (JNICALL *GetVersion)(JNIEnv *env); + + jclass (JNICALL *DefineClass) + (JNIEnv *env, const char *name, jobject loader, const jbyte *buf, + jsize len); + jclass (JNICALL *FindClass) + (JNIEnv *env, const char *name); + + jmethodID (JNICALL *FromReflectedMethod) + (JNIEnv *env, jobject method); + jfieldID (JNICALL *FromReflectedField) + (JNIEnv *env, jobject field); + + jobject (JNICALL *ToReflectedMethod) + (JNIEnv *env, jclass cls, jmethodID methodID, jboolean isStatic); + + jclass (JNICALL *GetSuperclass) + (JNIEnv *env, jclass sub); + jboolean (JNICALL *IsAssignableFrom) + (JNIEnv *env, jclass sub, jclass sup); + + jobject (JNICALL *ToReflectedField) + (JNIEnv *env, jclass cls, jfieldID fieldID, jboolean isStatic); + + jint (JNICALL *Throw) + (JNIEnv *env, jthrowable obj); + jint (JNICALL *ThrowNew) + (JNIEnv *env, jclass clazz, const char *msg); + jthrowable (JNICALL *ExceptionOccurred) + (JNIEnv *env); + void (JNICALL *ExceptionDescribe) + (JNIEnv *env); + void (JNICALL *ExceptionClear) + (JNIEnv *env); + void (JNICALL *FatalError) + (JNIEnv *env, const char *msg); + + jint (JNICALL *PushLocalFrame) + (JNIEnv *env, jint capacity); + jobject (JNICALL *PopLocalFrame) + (JNIEnv *env, jobject result); + + jobject (JNICALL *NewGlobalRef) + (JNIEnv *env, jobject lobj); + void (JNICALL *DeleteGlobalRef) + (JNIEnv *env, jobject gref); + void (JNICALL *DeleteLocalRef) + (JNIEnv *env, jobject obj); + jboolean (JNICALL *IsSameObject) + (JNIEnv *env, jobject obj1, jobject obj2); + jobject (JNICALL *NewLocalRef) + (JNIEnv *env, jobject ref); + jint (JNICALL *EnsureLocalCapacity) + (JNIEnv *env, jint capacity); + + jobject (JNICALL *AllocObject) + (JNIEnv *env, jclass clazz); + jobject (JNICALL *NewObject) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jobject (JNICALL *NewObjectV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jobject (JNICALL *NewObjectA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jclass (JNICALL *GetObjectClass) + (JNIEnv *env, jobject obj); + jboolean (JNICALL *IsInstanceOf) + (JNIEnv *env, jobject obj, jclass clazz); + + jmethodID (JNICALL *GetMethodID) + (JNIEnv *env, jclass clazz, const char *name, const char *sig); + + jobject (JNICALL *CallObjectMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jobject (JNICALL *CallObjectMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jobject (JNICALL *CallObjectMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args); + + jboolean (JNICALL *CallBooleanMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jboolean (JNICALL *CallBooleanMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jboolean (JNICALL *CallBooleanMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args); + + jbyte (JNICALL *CallByteMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jbyte (JNICALL *CallByteMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jbyte (JNICALL *CallByteMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jchar (JNICALL *CallCharMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jchar (JNICALL *CallCharMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jchar (JNICALL *CallCharMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jshort (JNICALL *CallShortMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jshort (JNICALL *CallShortMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jshort (JNICALL *CallShortMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jint (JNICALL *CallIntMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jint (JNICALL *CallIntMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jint (JNICALL *CallIntMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jlong (JNICALL *CallLongMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jlong (JNICALL *CallLongMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jlong (JNICALL *CallLongMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jfloat (JNICALL *CallFloatMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jfloat (JNICALL *CallFloatMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jfloat (JNICALL *CallFloatMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + jdouble (JNICALL *CallDoubleMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + jdouble (JNICALL *CallDoubleMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + jdouble (JNICALL *CallDoubleMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); + + void (JNICALL *CallVoidMethod) + (JNIEnv *env, jobject obj, jmethodID methodID, ...); + void (JNICALL *CallVoidMethodV) + (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); + void (JNICALL *CallVoidMethodA) + (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args); + + jobject (JNICALL *CallNonvirtualObjectMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jobject (JNICALL *CallNonvirtualObjectMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jobject (JNICALL *CallNonvirtualObjectMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue * args); + + jboolean (JNICALL *CallNonvirtualBooleanMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jboolean (JNICALL *CallNonvirtualBooleanMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jboolean (JNICALL *CallNonvirtualBooleanMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue * args); + + jbyte (JNICALL *CallNonvirtualByteMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jbyte (JNICALL *CallNonvirtualByteMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jbyte (JNICALL *CallNonvirtualByteMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jchar (JNICALL *CallNonvirtualCharMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jchar (JNICALL *CallNonvirtualCharMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jchar (JNICALL *CallNonvirtualCharMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jshort (JNICALL *CallNonvirtualShortMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jshort (JNICALL *CallNonvirtualShortMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jshort (JNICALL *CallNonvirtualShortMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jint (JNICALL *CallNonvirtualIntMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jint (JNICALL *CallNonvirtualIntMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jint (JNICALL *CallNonvirtualIntMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jlong (JNICALL *CallNonvirtualLongMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jlong (JNICALL *CallNonvirtualLongMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jlong (JNICALL *CallNonvirtualLongMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jfloat (JNICALL *CallNonvirtualFloatMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jfloat (JNICALL *CallNonvirtualFloatMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jfloat (JNICALL *CallNonvirtualFloatMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + jdouble (JNICALL *CallNonvirtualDoubleMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + jdouble (JNICALL *CallNonvirtualDoubleMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + jdouble (JNICALL *CallNonvirtualDoubleMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue *args); + + void (JNICALL *CallNonvirtualVoidMethod) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); + void (JNICALL *CallNonvirtualVoidMethodV) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + va_list args); + void (JNICALL *CallNonvirtualVoidMethodA) + (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, + const jvalue * args); + + jfieldID (JNICALL *GetFieldID) + (JNIEnv *env, jclass clazz, const char *name, const char *sig); + + jobject (JNICALL *GetObjectField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jboolean (JNICALL *GetBooleanField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jbyte (JNICALL *GetByteField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jchar (JNICALL *GetCharField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jshort (JNICALL *GetShortField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jint (JNICALL *GetIntField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jlong (JNICALL *GetLongField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jfloat (JNICALL *GetFloatField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + jdouble (JNICALL *GetDoubleField) + (JNIEnv *env, jobject obj, jfieldID fieldID); + + void (JNICALL *SetObjectField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jobject val); + void (JNICALL *SetBooleanField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val); + void (JNICALL *SetByteField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val); + void (JNICALL *SetCharField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val); + void (JNICALL *SetShortField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val); + void (JNICALL *SetIntField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jint val); + void (JNICALL *SetLongField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val); + void (JNICALL *SetFloatField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val); + void (JNICALL *SetDoubleField) + (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val); + + jmethodID (JNICALL *GetStaticMethodID) + (JNIEnv *env, jclass clazz, const char *name, const char *sig); + + jobject (JNICALL *CallStaticObjectMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jobject (JNICALL *CallStaticObjectMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jobject (JNICALL *CallStaticObjectMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jboolean (JNICALL *CallStaticBooleanMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jboolean (JNICALL *CallStaticBooleanMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jboolean (JNICALL *CallStaticBooleanMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jbyte (JNICALL *CallStaticByteMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jbyte (JNICALL *CallStaticByteMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jbyte (JNICALL *CallStaticByteMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jchar (JNICALL *CallStaticCharMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jchar (JNICALL *CallStaticCharMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jchar (JNICALL *CallStaticCharMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jshort (JNICALL *CallStaticShortMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jshort (JNICALL *CallStaticShortMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jshort (JNICALL *CallStaticShortMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jint (JNICALL *CallStaticIntMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jint (JNICALL *CallStaticIntMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jint (JNICALL *CallStaticIntMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jlong (JNICALL *CallStaticLongMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jlong (JNICALL *CallStaticLongMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jlong (JNICALL *CallStaticLongMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jfloat (JNICALL *CallStaticFloatMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jfloat (JNICALL *CallStaticFloatMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jfloat (JNICALL *CallStaticFloatMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + jdouble (JNICALL *CallStaticDoubleMethod) + (JNIEnv *env, jclass clazz, jmethodID methodID, ...); + jdouble (JNICALL *CallStaticDoubleMethodV) + (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); + jdouble (JNICALL *CallStaticDoubleMethodA) + (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); + + void (JNICALL *CallStaticVoidMethod) + (JNIEnv *env, jclass cls, jmethodID methodID, ...); + void (JNICALL *CallStaticVoidMethodV) + (JNIEnv *env, jclass cls, jmethodID methodID, va_list args); + void (JNICALL *CallStaticVoidMethodA) + (JNIEnv *env, jclass cls, jmethodID methodID, const jvalue * args); + + jfieldID (JNICALL *GetStaticFieldID) + (JNIEnv *env, jclass clazz, const char *name, const char *sig); + jobject (JNICALL *GetStaticObjectField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jboolean (JNICALL *GetStaticBooleanField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jbyte (JNICALL *GetStaticByteField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jchar (JNICALL *GetStaticCharField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jshort (JNICALL *GetStaticShortField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jint (JNICALL *GetStaticIntField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jlong (JNICALL *GetStaticLongField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jfloat (JNICALL *GetStaticFloatField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + jdouble (JNICALL *GetStaticDoubleField) + (JNIEnv *env, jclass clazz, jfieldID fieldID); + + void (JNICALL *SetStaticObjectField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value); + void (JNICALL *SetStaticBooleanField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value); + void (JNICALL *SetStaticByteField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value); + void (JNICALL *SetStaticCharField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value); + void (JNICALL *SetStaticShortField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value); + void (JNICALL *SetStaticIntField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jint value); + void (JNICALL *SetStaticLongField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value); + void (JNICALL *SetStaticFloatField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value); + void (JNICALL *SetStaticDoubleField) + (JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value); + + jstring (JNICALL *NewString) + (JNIEnv *env, const jchar *unicode, jsize len); + jsize (JNICALL *GetStringLength) + (JNIEnv *env, jstring str); + const jchar *(JNICALL *GetStringChars) + (JNIEnv *env, jstring str, jboolean *isCopy); + void (JNICALL *ReleaseStringChars) + (JNIEnv *env, jstring str, const jchar *chars); + + jstring (JNICALL *NewStringUTF) + (JNIEnv *env, const char *utf); + jsize (JNICALL *GetStringUTFLength) + (JNIEnv *env, jstring str); + const char* (JNICALL *GetStringUTFChars) + (JNIEnv *env, jstring str, jboolean *isCopy); + void (JNICALL *ReleaseStringUTFChars) + (JNIEnv *env, jstring str, const char* chars); + + + jsize (JNICALL *GetArrayLength) + (JNIEnv *env, jarray array); + + jobjectArray (JNICALL *NewObjectArray) + (JNIEnv *env, jsize len, jclass clazz, jobject init); + jobject (JNICALL *GetObjectArrayElement) + (JNIEnv *env, jobjectArray array, jsize index); + void (JNICALL *SetObjectArrayElement) + (JNIEnv *env, jobjectArray array, jsize index, jobject val); + + jbooleanArray (JNICALL *NewBooleanArray) + (JNIEnv *env, jsize len); + jbyteArray (JNICALL *NewByteArray) + (JNIEnv *env, jsize len); + jcharArray (JNICALL *NewCharArray) + (JNIEnv *env, jsize len); + jshortArray (JNICALL *NewShortArray) + (JNIEnv *env, jsize len); + jintArray (JNICALL *NewIntArray) + (JNIEnv *env, jsize len); + jlongArray (JNICALL *NewLongArray) + (JNIEnv *env, jsize len); + jfloatArray (JNICALL *NewFloatArray) + (JNIEnv *env, jsize len); + jdoubleArray (JNICALL *NewDoubleArray) + (JNIEnv *env, jsize len); + + jboolean * (JNICALL *GetBooleanArrayElements) + (JNIEnv *env, jbooleanArray array, jboolean *isCopy); + jbyte * (JNICALL *GetByteArrayElements) + (JNIEnv *env, jbyteArray array, jboolean *isCopy); + jchar * (JNICALL *GetCharArrayElements) + (JNIEnv *env, jcharArray array, jboolean *isCopy); + jshort * (JNICALL *GetShortArrayElements) + (JNIEnv *env, jshortArray array, jboolean *isCopy); + jint * (JNICALL *GetIntArrayElements) + (JNIEnv *env, jintArray array, jboolean *isCopy); + jlong * (JNICALL *GetLongArrayElements) + (JNIEnv *env, jlongArray array, jboolean *isCopy); + jfloat * (JNICALL *GetFloatArrayElements) + (JNIEnv *env, jfloatArray array, jboolean *isCopy); + jdouble * (JNICALL *GetDoubleArrayElements) + (JNIEnv *env, jdoubleArray array, jboolean *isCopy); + + void (JNICALL *ReleaseBooleanArrayElements) + (JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode); + void (JNICALL *ReleaseByteArrayElements) + (JNIEnv *env, jbyteArray array, jbyte *elems, jint mode); + void (JNICALL *ReleaseCharArrayElements) + (JNIEnv *env, jcharArray array, jchar *elems, jint mode); + void (JNICALL *ReleaseShortArrayElements) + (JNIEnv *env, jshortArray array, jshort *elems, jint mode); + void (JNICALL *ReleaseIntArrayElements) + (JNIEnv *env, jintArray array, jint *elems, jint mode); + void (JNICALL *ReleaseLongArrayElements) + (JNIEnv *env, jlongArray array, jlong *elems, jint mode); + void (JNICALL *ReleaseFloatArrayElements) + (JNIEnv *env, jfloatArray array, jfloat *elems, jint mode); + void (JNICALL *ReleaseDoubleArrayElements) + (JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode); + + void (JNICALL *GetBooleanArrayRegion) + (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf); + void (JNICALL *GetByteArrayRegion) + (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf); + void (JNICALL *GetCharArrayRegion) + (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf); + void (JNICALL *GetShortArrayRegion) + (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf); + void (JNICALL *GetIntArrayRegion) + (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf); + void (JNICALL *GetLongArrayRegion) + (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf); + void (JNICALL *GetFloatArrayRegion) + (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf); + void (JNICALL *GetDoubleArrayRegion) + (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf); + + void (JNICALL *SetBooleanArrayRegion) + (JNIEnv *env, jbooleanArray array, jsize start, jsize l, const jboolean *buf); + void (JNICALL *SetByteArrayRegion) + (JNIEnv *env, jbyteArray array, jsize start, jsize len, const jbyte *buf); + void (JNICALL *SetCharArrayRegion) + (JNIEnv *env, jcharArray array, jsize start, jsize len, const jchar *buf); + void (JNICALL *SetShortArrayRegion) + (JNIEnv *env, jshortArray array, jsize start, jsize len, const jshort *buf); + void (JNICALL *SetIntArrayRegion) + (JNIEnv *env, jintArray array, jsize start, jsize len, const jint *buf); + void (JNICALL *SetLongArrayRegion) + (JNIEnv *env, jlongArray array, jsize start, jsize len, const jlong *buf); + void (JNICALL *SetFloatArrayRegion) + (JNIEnv *env, jfloatArray array, jsize start, jsize len, const jfloat *buf); + void (JNICALL *SetDoubleArrayRegion) + (JNIEnv *env, jdoubleArray array, jsize start, jsize len, const jdouble *buf); + + jint (JNICALL *RegisterNatives) + (JNIEnv *env, jclass clazz, const JNINativeMethod *methods, + jint nMethods); + jint (JNICALL *UnregisterNatives) + (JNIEnv *env, jclass clazz); + + jint (JNICALL *MonitorEnter) + (JNIEnv *env, jobject obj); + jint (JNICALL *MonitorExit) + (JNIEnv *env, jobject obj); + + jint (JNICALL *GetJavaVM) + (JNIEnv *env, JavaVM **vm); + + void (JNICALL *GetStringRegion) + (JNIEnv *env, jstring str, jsize start, jsize len, jchar *buf); + void (JNICALL *GetStringUTFRegion) + (JNIEnv *env, jstring str, jsize start, jsize len, char *buf); + + void * (JNICALL *GetPrimitiveArrayCritical) + (JNIEnv *env, jarray array, jboolean *isCopy); + void (JNICALL *ReleasePrimitiveArrayCritical) + (JNIEnv *env, jarray array, void *carray, jint mode); + + const jchar * (JNICALL *GetStringCritical) + (JNIEnv *env, jstring string, jboolean *isCopy); + void (JNICALL *ReleaseStringCritical) + (JNIEnv *env, jstring string, const jchar *cstring); + + jweak (JNICALL *NewWeakGlobalRef) + (JNIEnv *env, jobject obj); + void (JNICALL *DeleteWeakGlobalRef) + (JNIEnv *env, jweak ref); + + jboolean (JNICALL *ExceptionCheck) + (JNIEnv *env); + + jobject (JNICALL *NewDirectByteBuffer) + (JNIEnv* env, void* address, jlong capacity); + void* (JNICALL *GetDirectBufferAddress) + (JNIEnv* env, jobject buf); + jlong (JNICALL *GetDirectBufferCapacity) + (JNIEnv* env, jobject buf); + + /* New JNI 1.6 Features */ + + jobjectRefType (JNICALL *GetObjectRefType) + (JNIEnv* env, jobject obj); + + /* Module Features */ + + jobject (JNICALL *GetModule) + (JNIEnv* env, jclass clazz); +}; + +/* + * We use inlined functions for C++ so that programmers can write: + * + * env->FindClass("java/lang/String") + * + * in C++ rather than: + * + * (*env)->FindClass(env, "java/lang/String") + * + * in C. + */ + +struct JNIEnv_ { + const struct JNINativeInterface_ *functions; +#ifdef __cplusplus + + jint GetVersion() { + return functions->GetVersion(this); + } + jclass DefineClass(const char *name, jobject loader, const jbyte *buf, + jsize len) { + return functions->DefineClass(this, name, loader, buf, len); + } + jclass FindClass(const char *name) { + return functions->FindClass(this, name); + } + jmethodID FromReflectedMethod(jobject method) { + return functions->FromReflectedMethod(this,method); + } + jfieldID FromReflectedField(jobject field) { + return functions->FromReflectedField(this,field); + } + + jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic) { + return functions->ToReflectedMethod(this, cls, methodID, isStatic); + } + + jclass GetSuperclass(jclass sub) { + return functions->GetSuperclass(this, sub); + } + jboolean IsAssignableFrom(jclass sub, jclass sup) { + return functions->IsAssignableFrom(this, sub, sup); + } + + jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic) { + return functions->ToReflectedField(this,cls,fieldID,isStatic); + } + + jint Throw(jthrowable obj) { + return functions->Throw(this, obj); + } + jint ThrowNew(jclass clazz, const char *msg) { + return functions->ThrowNew(this, clazz, msg); + } + jthrowable ExceptionOccurred() { + return functions->ExceptionOccurred(this); + } + void ExceptionDescribe() { + functions->ExceptionDescribe(this); + } + void ExceptionClear() { + functions->ExceptionClear(this); + } + void FatalError(const char *msg) { + functions->FatalError(this, msg); + } + + jint PushLocalFrame(jint capacity) { + return functions->PushLocalFrame(this,capacity); + } + jobject PopLocalFrame(jobject result) { + return functions->PopLocalFrame(this,result); + } + + jobject NewGlobalRef(jobject lobj) { + return functions->NewGlobalRef(this,lobj); + } + void DeleteGlobalRef(jobject gref) { + functions->DeleteGlobalRef(this,gref); + } + void DeleteLocalRef(jobject obj) { + functions->DeleteLocalRef(this, obj); + } + + jboolean IsSameObject(jobject obj1, jobject obj2) { + return functions->IsSameObject(this,obj1,obj2); + } + + jobject NewLocalRef(jobject ref) { + return functions->NewLocalRef(this,ref); + } + jint EnsureLocalCapacity(jint capacity) { + return functions->EnsureLocalCapacity(this,capacity); + } + + jobject AllocObject(jclass clazz) { + return functions->AllocObject(this,clazz); + } + jobject NewObject(jclass clazz, jmethodID methodID, ...) { + va_list args; + jobject result; + va_start(args, methodID); + result = functions->NewObjectV(this,clazz,methodID,args); + va_end(args); + return result; + } + jobject NewObjectV(jclass clazz, jmethodID methodID, + va_list args) { + return functions->NewObjectV(this,clazz,methodID,args); + } + jobject NewObjectA(jclass clazz, jmethodID methodID, + const jvalue *args) { + return functions->NewObjectA(this,clazz,methodID,args); + } + + jclass GetObjectClass(jobject obj) { + return functions->GetObjectClass(this,obj); + } + jboolean IsInstanceOf(jobject obj, jclass clazz) { + return functions->IsInstanceOf(this,obj,clazz); + } + + jmethodID GetMethodID(jclass clazz, const char *name, + const char *sig) { + return functions->GetMethodID(this,clazz,name,sig); + } + + jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jobject result; + va_start(args,methodID); + result = functions->CallObjectMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jobject CallObjectMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallObjectMethodV(this,obj,methodID,args); + } + jobject CallObjectMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallObjectMethodA(this,obj,methodID,args); + } + + jboolean CallBooleanMethod(jobject obj, + jmethodID methodID, ...) { + va_list args; + jboolean result; + va_start(args,methodID); + result = functions->CallBooleanMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jboolean CallBooleanMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallBooleanMethodV(this,obj,methodID,args); + } + jboolean CallBooleanMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallBooleanMethodA(this,obj,methodID, args); + } + + jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jbyte result; + va_start(args,methodID); + result = functions->CallByteMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jbyte CallByteMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallByteMethodV(this,obj,methodID,args); + } + jbyte CallByteMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallByteMethodA(this,obj,methodID,args); + } + + jchar CallCharMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jchar result; + va_start(args,methodID); + result = functions->CallCharMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jchar CallCharMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallCharMethodV(this,obj,methodID,args); + } + jchar CallCharMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallCharMethodA(this,obj,methodID,args); + } + + jshort CallShortMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jshort result; + va_start(args,methodID); + result = functions->CallShortMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jshort CallShortMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallShortMethodV(this,obj,methodID,args); + } + jshort CallShortMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallShortMethodA(this,obj,methodID,args); + } + + jint CallIntMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jint result; + va_start(args,methodID); + result = functions->CallIntMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jint CallIntMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallIntMethodV(this,obj,methodID,args); + } + jint CallIntMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallIntMethodA(this,obj,methodID,args); + } + + jlong CallLongMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jlong result; + va_start(args,methodID); + result = functions->CallLongMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jlong CallLongMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallLongMethodV(this,obj,methodID,args); + } + jlong CallLongMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallLongMethodA(this,obj,methodID,args); + } + + jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jfloat result; + va_start(args,methodID); + result = functions->CallFloatMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jfloat CallFloatMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallFloatMethodV(this,obj,methodID,args); + } + jfloat CallFloatMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallFloatMethodA(this,obj,methodID,args); + } + + jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + jdouble result; + va_start(args,methodID); + result = functions->CallDoubleMethodV(this,obj,methodID,args); + va_end(args); + return result; + } + jdouble CallDoubleMethodV(jobject obj, jmethodID methodID, + va_list args) { + return functions->CallDoubleMethodV(this,obj,methodID,args); + } + jdouble CallDoubleMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + return functions->CallDoubleMethodA(this,obj,methodID,args); + } + + void CallVoidMethod(jobject obj, jmethodID methodID, ...) { + va_list args; + va_start(args,methodID); + functions->CallVoidMethodV(this,obj,methodID,args); + va_end(args); + } + void CallVoidMethodV(jobject obj, jmethodID methodID, + va_list args) { + functions->CallVoidMethodV(this,obj,methodID,args); + } + void CallVoidMethodA(jobject obj, jmethodID methodID, + const jvalue * args) { + functions->CallVoidMethodA(this,obj,methodID,args); + } + + jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jobject result; + va_start(args,methodID); + result = functions->CallNonvirtualObjectMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jobject CallNonvirtualObjectMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualObjectMethodV(this,obj,clazz, + methodID,args); + } + jobject CallNonvirtualObjectMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualObjectMethodA(this,obj,clazz, + methodID,args); + } + + jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jboolean result; + va_start(args,methodID); + result = functions->CallNonvirtualBooleanMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jboolean CallNonvirtualBooleanMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualBooleanMethodV(this,obj,clazz, + methodID,args); + } + jboolean CallNonvirtualBooleanMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualBooleanMethodA(this,obj,clazz, + methodID, args); + } + + jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jbyte result; + va_start(args,methodID); + result = functions->CallNonvirtualByteMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jbyte CallNonvirtualByteMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualByteMethodV(this,obj,clazz, + methodID,args); + } + jbyte CallNonvirtualByteMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualByteMethodA(this,obj,clazz, + methodID,args); + } + + jchar CallNonvirtualCharMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jchar result; + va_start(args,methodID); + result = functions->CallNonvirtualCharMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jchar CallNonvirtualCharMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualCharMethodV(this,obj,clazz, + methodID,args); + } + jchar CallNonvirtualCharMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualCharMethodA(this,obj,clazz, + methodID,args); + } + + jshort CallNonvirtualShortMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jshort result; + va_start(args,methodID); + result = functions->CallNonvirtualShortMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jshort CallNonvirtualShortMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualShortMethodV(this,obj,clazz, + methodID,args); + } + jshort CallNonvirtualShortMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualShortMethodA(this,obj,clazz, + methodID,args); + } + + jint CallNonvirtualIntMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jint result; + va_start(args,methodID); + result = functions->CallNonvirtualIntMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jint CallNonvirtualIntMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualIntMethodV(this,obj,clazz, + methodID,args); + } + jint CallNonvirtualIntMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualIntMethodA(this,obj,clazz, + methodID,args); + } + + jlong CallNonvirtualLongMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jlong result; + va_start(args,methodID); + result = functions->CallNonvirtualLongMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jlong CallNonvirtualLongMethodV(jobject obj, jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallNonvirtualLongMethodV(this,obj,clazz, + methodID,args); + } + jlong CallNonvirtualLongMethodA(jobject obj, jclass clazz, + jmethodID methodID, const jvalue * args) { + return functions->CallNonvirtualLongMethodA(this,obj,clazz, + methodID,args); + } + + jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jfloat result; + va_start(args,methodID); + result = functions->CallNonvirtualFloatMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jfloat CallNonvirtualFloatMethodV(jobject obj, jclass clazz, + jmethodID methodID, + va_list args) { + return functions->CallNonvirtualFloatMethodV(this,obj,clazz, + methodID,args); + } + jfloat CallNonvirtualFloatMethodA(jobject obj, jclass clazz, + jmethodID methodID, + const jvalue * args) { + return functions->CallNonvirtualFloatMethodA(this,obj,clazz, + methodID,args); + } + + jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + jdouble result; + va_start(args,methodID); + result = functions->CallNonvirtualDoubleMethodV(this,obj,clazz, + methodID,args); + va_end(args); + return result; + } + jdouble CallNonvirtualDoubleMethodV(jobject obj, jclass clazz, + jmethodID methodID, + va_list args) { + return functions->CallNonvirtualDoubleMethodV(this,obj,clazz, + methodID,args); + } + jdouble CallNonvirtualDoubleMethodA(jobject obj, jclass clazz, + jmethodID methodID, + const jvalue * args) { + return functions->CallNonvirtualDoubleMethodA(this,obj,clazz, + methodID,args); + } + + void CallNonvirtualVoidMethod(jobject obj, jclass clazz, + jmethodID methodID, ...) { + va_list args; + va_start(args,methodID); + functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args); + va_end(args); + } + void CallNonvirtualVoidMethodV(jobject obj, jclass clazz, + jmethodID methodID, + va_list args) { + functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args); + } + void CallNonvirtualVoidMethodA(jobject obj, jclass clazz, + jmethodID methodID, + const jvalue * args) { + functions->CallNonvirtualVoidMethodA(this,obj,clazz,methodID,args); + } + + jfieldID GetFieldID(jclass clazz, const char *name, + const char *sig) { + return functions->GetFieldID(this,clazz,name,sig); + } + + jobject GetObjectField(jobject obj, jfieldID fieldID) { + return functions->GetObjectField(this,obj,fieldID); + } + jboolean GetBooleanField(jobject obj, jfieldID fieldID) { + return functions->GetBooleanField(this,obj,fieldID); + } + jbyte GetByteField(jobject obj, jfieldID fieldID) { + return functions->GetByteField(this,obj,fieldID); + } + jchar GetCharField(jobject obj, jfieldID fieldID) { + return functions->GetCharField(this,obj,fieldID); + } + jshort GetShortField(jobject obj, jfieldID fieldID) { + return functions->GetShortField(this,obj,fieldID); + } + jint GetIntField(jobject obj, jfieldID fieldID) { + return functions->GetIntField(this,obj,fieldID); + } + jlong GetLongField(jobject obj, jfieldID fieldID) { + return functions->GetLongField(this,obj,fieldID); + } + jfloat GetFloatField(jobject obj, jfieldID fieldID) { + return functions->GetFloatField(this,obj,fieldID); + } + jdouble GetDoubleField(jobject obj, jfieldID fieldID) { + return functions->GetDoubleField(this,obj,fieldID); + } + + void SetObjectField(jobject obj, jfieldID fieldID, jobject val) { + functions->SetObjectField(this,obj,fieldID,val); + } + void SetBooleanField(jobject obj, jfieldID fieldID, + jboolean val) { + functions->SetBooleanField(this,obj,fieldID,val); + } + void SetByteField(jobject obj, jfieldID fieldID, + jbyte val) { + functions->SetByteField(this,obj,fieldID,val); + } + void SetCharField(jobject obj, jfieldID fieldID, + jchar val) { + functions->SetCharField(this,obj,fieldID,val); + } + void SetShortField(jobject obj, jfieldID fieldID, + jshort val) { + functions->SetShortField(this,obj,fieldID,val); + } + void SetIntField(jobject obj, jfieldID fieldID, + jint val) { + functions->SetIntField(this,obj,fieldID,val); + } + void SetLongField(jobject obj, jfieldID fieldID, + jlong val) { + functions->SetLongField(this,obj,fieldID,val); + } + void SetFloatField(jobject obj, jfieldID fieldID, + jfloat val) { + functions->SetFloatField(this,obj,fieldID,val); + } + void SetDoubleField(jobject obj, jfieldID fieldID, + jdouble val) { + functions->SetDoubleField(this,obj,fieldID,val); + } + + jmethodID GetStaticMethodID(jclass clazz, const char *name, + const char *sig) { + return functions->GetStaticMethodID(this,clazz,name,sig); + } + + jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID, + ...) { + va_list args; + jobject result; + va_start(args,methodID); + result = functions->CallStaticObjectMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jobject CallStaticObjectMethodV(jclass clazz, jmethodID methodID, + va_list args) { + return functions->CallStaticObjectMethodV(this,clazz,methodID,args); + } + jobject CallStaticObjectMethodA(jclass clazz, jmethodID methodID, + const jvalue *args) { + return functions->CallStaticObjectMethodA(this,clazz,methodID,args); + } + + jboolean CallStaticBooleanMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jboolean result; + va_start(args,methodID); + result = functions->CallStaticBooleanMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jboolean CallStaticBooleanMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticBooleanMethodV(this,clazz,methodID,args); + } + jboolean CallStaticBooleanMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticBooleanMethodA(this,clazz,methodID,args); + } + + jbyte CallStaticByteMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jbyte result; + va_start(args,methodID); + result = functions->CallStaticByteMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jbyte CallStaticByteMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticByteMethodV(this,clazz,methodID,args); + } + jbyte CallStaticByteMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticByteMethodA(this,clazz,methodID,args); + } + + jchar CallStaticCharMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jchar result; + va_start(args,methodID); + result = functions->CallStaticCharMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jchar CallStaticCharMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticCharMethodV(this,clazz,methodID,args); + } + jchar CallStaticCharMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticCharMethodA(this,clazz,methodID,args); + } + + jshort CallStaticShortMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jshort result; + va_start(args,methodID); + result = functions->CallStaticShortMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jshort CallStaticShortMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticShortMethodV(this,clazz,methodID,args); + } + jshort CallStaticShortMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticShortMethodA(this,clazz,methodID,args); + } + + jint CallStaticIntMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jint result; + va_start(args,methodID); + result = functions->CallStaticIntMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jint CallStaticIntMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticIntMethodV(this,clazz,methodID,args); + } + jint CallStaticIntMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticIntMethodA(this,clazz,methodID,args); + } + + jlong CallStaticLongMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jlong result; + va_start(args,methodID); + result = functions->CallStaticLongMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jlong CallStaticLongMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticLongMethodV(this,clazz,methodID,args); + } + jlong CallStaticLongMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticLongMethodA(this,clazz,methodID,args); + } + + jfloat CallStaticFloatMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jfloat result; + va_start(args,methodID); + result = functions->CallStaticFloatMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jfloat CallStaticFloatMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticFloatMethodV(this,clazz,methodID,args); + } + jfloat CallStaticFloatMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticFloatMethodA(this,clazz,methodID,args); + } + + jdouble CallStaticDoubleMethod(jclass clazz, + jmethodID methodID, ...) { + va_list args; + jdouble result; + va_start(args,methodID); + result = functions->CallStaticDoubleMethodV(this,clazz,methodID,args); + va_end(args); + return result; + } + jdouble CallStaticDoubleMethodV(jclass clazz, + jmethodID methodID, va_list args) { + return functions->CallStaticDoubleMethodV(this,clazz,methodID,args); + } + jdouble CallStaticDoubleMethodA(jclass clazz, + jmethodID methodID, const jvalue *args) { + return functions->CallStaticDoubleMethodA(this,clazz,methodID,args); + } + + void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) { + va_list args; + va_start(args,methodID); + functions->CallStaticVoidMethodV(this,cls,methodID,args); + va_end(args); + } + void CallStaticVoidMethodV(jclass cls, jmethodID methodID, + va_list args) { + functions->CallStaticVoidMethodV(this,cls,methodID,args); + } + void CallStaticVoidMethodA(jclass cls, jmethodID methodID, + const jvalue * args) { + functions->CallStaticVoidMethodA(this,cls,methodID,args); + } + + jfieldID GetStaticFieldID(jclass clazz, const char *name, + const char *sig) { + return functions->GetStaticFieldID(this,clazz,name,sig); + } + jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticObjectField(this,clazz,fieldID); + } + jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticBooleanField(this,clazz,fieldID); + } + jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticByteField(this,clazz,fieldID); + } + jchar GetStaticCharField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticCharField(this,clazz,fieldID); + } + jshort GetStaticShortField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticShortField(this,clazz,fieldID); + } + jint GetStaticIntField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticIntField(this,clazz,fieldID); + } + jlong GetStaticLongField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticLongField(this,clazz,fieldID); + } + jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticFloatField(this,clazz,fieldID); + } + jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) { + return functions->GetStaticDoubleField(this,clazz,fieldID); + } + + void SetStaticObjectField(jclass clazz, jfieldID fieldID, + jobject value) { + functions->SetStaticObjectField(this,clazz,fieldID,value); + } + void SetStaticBooleanField(jclass clazz, jfieldID fieldID, + jboolean value) { + functions->SetStaticBooleanField(this,clazz,fieldID,value); + } + void SetStaticByteField(jclass clazz, jfieldID fieldID, + jbyte value) { + functions->SetStaticByteField(this,clazz,fieldID,value); + } + void SetStaticCharField(jclass clazz, jfieldID fieldID, + jchar value) { + functions->SetStaticCharField(this,clazz,fieldID,value); + } + void SetStaticShortField(jclass clazz, jfieldID fieldID, + jshort value) { + functions->SetStaticShortField(this,clazz,fieldID,value); + } + void SetStaticIntField(jclass clazz, jfieldID fieldID, + jint value) { + functions->SetStaticIntField(this,clazz,fieldID,value); + } + void SetStaticLongField(jclass clazz, jfieldID fieldID, + jlong value) { + functions->SetStaticLongField(this,clazz,fieldID,value); + } + void SetStaticFloatField(jclass clazz, jfieldID fieldID, + jfloat value) { + functions->SetStaticFloatField(this,clazz,fieldID,value); + } + void SetStaticDoubleField(jclass clazz, jfieldID fieldID, + jdouble value) { + functions->SetStaticDoubleField(this,clazz,fieldID,value); + } + + jstring NewString(const jchar *unicode, jsize len) { + return functions->NewString(this,unicode,len); + } + jsize GetStringLength(jstring str) { + return functions->GetStringLength(this,str); + } + const jchar *GetStringChars(jstring str, jboolean *isCopy) { + return functions->GetStringChars(this,str,isCopy); + } + void ReleaseStringChars(jstring str, const jchar *chars) { + functions->ReleaseStringChars(this,str,chars); + } + + jstring NewStringUTF(const char *utf) { + return functions->NewStringUTF(this,utf); + } + jsize GetStringUTFLength(jstring str) { + return functions->GetStringUTFLength(this,str); + } + const char* GetStringUTFChars(jstring str, jboolean *isCopy) { + return functions->GetStringUTFChars(this,str,isCopy); + } + void ReleaseStringUTFChars(jstring str, const char* chars) { + functions->ReleaseStringUTFChars(this,str,chars); + } + + jsize GetArrayLength(jarray array) { + return functions->GetArrayLength(this,array); + } + + jobjectArray NewObjectArray(jsize len, jclass clazz, + jobject init) { + return functions->NewObjectArray(this,len,clazz,init); + } + jobject GetObjectArrayElement(jobjectArray array, jsize index) { + return functions->GetObjectArrayElement(this,array,index); + } + void SetObjectArrayElement(jobjectArray array, jsize index, + jobject val) { + functions->SetObjectArrayElement(this,array,index,val); + } + + jbooleanArray NewBooleanArray(jsize len) { + return functions->NewBooleanArray(this,len); + } + jbyteArray NewByteArray(jsize len) { + return functions->NewByteArray(this,len); + } + jcharArray NewCharArray(jsize len) { + return functions->NewCharArray(this,len); + } + jshortArray NewShortArray(jsize len) { + return functions->NewShortArray(this,len); + } + jintArray NewIntArray(jsize len) { + return functions->NewIntArray(this,len); + } + jlongArray NewLongArray(jsize len) { + return functions->NewLongArray(this,len); + } + jfloatArray NewFloatArray(jsize len) { + return functions->NewFloatArray(this,len); + } + jdoubleArray NewDoubleArray(jsize len) { + return functions->NewDoubleArray(this,len); + } + + jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) { + return functions->GetBooleanArrayElements(this,array,isCopy); + } + jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) { + return functions->GetByteArrayElements(this,array,isCopy); + } + jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) { + return functions->GetCharArrayElements(this,array,isCopy); + } + jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) { + return functions->GetShortArrayElements(this,array,isCopy); + } + jint * GetIntArrayElements(jintArray array, jboolean *isCopy) { + return functions->GetIntArrayElements(this,array,isCopy); + } + jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) { + return functions->GetLongArrayElements(this,array,isCopy); + } + jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) { + return functions->GetFloatArrayElements(this,array,isCopy); + } + jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) { + return functions->GetDoubleArrayElements(this,array,isCopy); + } + + void ReleaseBooleanArrayElements(jbooleanArray array, + jboolean *elems, + jint mode) { + functions->ReleaseBooleanArrayElements(this,array,elems,mode); + } + void ReleaseByteArrayElements(jbyteArray array, + jbyte *elems, + jint mode) { + functions->ReleaseByteArrayElements(this,array,elems,mode); + } + void ReleaseCharArrayElements(jcharArray array, + jchar *elems, + jint mode) { + functions->ReleaseCharArrayElements(this,array,elems,mode); + } + void ReleaseShortArrayElements(jshortArray array, + jshort *elems, + jint mode) { + functions->ReleaseShortArrayElements(this,array,elems,mode); + } + void ReleaseIntArrayElements(jintArray array, + jint *elems, + jint mode) { + functions->ReleaseIntArrayElements(this,array,elems,mode); + } + void ReleaseLongArrayElements(jlongArray array, + jlong *elems, + jint mode) { + functions->ReleaseLongArrayElements(this,array,elems,mode); + } + void ReleaseFloatArrayElements(jfloatArray array, + jfloat *elems, + jint mode) { + functions->ReleaseFloatArrayElements(this,array,elems,mode); + } + void ReleaseDoubleArrayElements(jdoubleArray array, + jdouble *elems, + jint mode) { + functions->ReleaseDoubleArrayElements(this,array,elems,mode); + } + + void GetBooleanArrayRegion(jbooleanArray array, + jsize start, jsize len, jboolean *buf) { + functions->GetBooleanArrayRegion(this,array,start,len,buf); + } + void GetByteArrayRegion(jbyteArray array, + jsize start, jsize len, jbyte *buf) { + functions->GetByteArrayRegion(this,array,start,len,buf); + } + void GetCharArrayRegion(jcharArray array, + jsize start, jsize len, jchar *buf) { + functions->GetCharArrayRegion(this,array,start,len,buf); + } + void GetShortArrayRegion(jshortArray array, + jsize start, jsize len, jshort *buf) { + functions->GetShortArrayRegion(this,array,start,len,buf); + } + void GetIntArrayRegion(jintArray array, + jsize start, jsize len, jint *buf) { + functions->GetIntArrayRegion(this,array,start,len,buf); + } + void GetLongArrayRegion(jlongArray array, + jsize start, jsize len, jlong *buf) { + functions->GetLongArrayRegion(this,array,start,len,buf); + } + void GetFloatArrayRegion(jfloatArray array, + jsize start, jsize len, jfloat *buf) { + functions->GetFloatArrayRegion(this,array,start,len,buf); + } + void GetDoubleArrayRegion(jdoubleArray array, + jsize start, jsize len, jdouble *buf) { + functions->GetDoubleArrayRegion(this,array,start,len,buf); + } + + void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, + const jboolean *buf) { + functions->SetBooleanArrayRegion(this,array,start,len,buf); + } + void SetByteArrayRegion(jbyteArray array, jsize start, jsize len, + const jbyte *buf) { + functions->SetByteArrayRegion(this,array,start,len,buf); + } + void SetCharArrayRegion(jcharArray array, jsize start, jsize len, + const jchar *buf) { + functions->SetCharArrayRegion(this,array,start,len,buf); + } + void SetShortArrayRegion(jshortArray array, jsize start, jsize len, + const jshort *buf) { + functions->SetShortArrayRegion(this,array,start,len,buf); + } + void SetIntArrayRegion(jintArray array, jsize start, jsize len, + const jint *buf) { + functions->SetIntArrayRegion(this,array,start,len,buf); + } + void SetLongArrayRegion(jlongArray array, jsize start, jsize len, + const jlong *buf) { + functions->SetLongArrayRegion(this,array,start,len,buf); + } + void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len, + const jfloat *buf) { + functions->SetFloatArrayRegion(this,array,start,len,buf); + } + void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, + const jdouble *buf) { + functions->SetDoubleArrayRegion(this,array,start,len,buf); + } + + jint RegisterNatives(jclass clazz, const JNINativeMethod *methods, + jint nMethods) { + return functions->RegisterNatives(this,clazz,methods,nMethods); + } + jint UnregisterNatives(jclass clazz) { + return functions->UnregisterNatives(this,clazz); + } + + jint MonitorEnter(jobject obj) { + return functions->MonitorEnter(this,obj); + } + jint MonitorExit(jobject obj) { + return functions->MonitorExit(this,obj); + } + + jint GetJavaVM(JavaVM **vm) { + return functions->GetJavaVM(this,vm); + } + + void GetStringRegion(jstring str, jsize start, jsize len, jchar *buf) { + functions->GetStringRegion(this,str,start,len,buf); + } + void GetStringUTFRegion(jstring str, jsize start, jsize len, char *buf) { + functions->GetStringUTFRegion(this,str,start,len,buf); + } + + void * GetPrimitiveArrayCritical(jarray array, jboolean *isCopy) { + return functions->GetPrimitiveArrayCritical(this,array,isCopy); + } + void ReleasePrimitiveArrayCritical(jarray array, void *carray, jint mode) { + functions->ReleasePrimitiveArrayCritical(this,array,carray,mode); + } + + const jchar * GetStringCritical(jstring string, jboolean *isCopy) { + return functions->GetStringCritical(this,string,isCopy); + } + void ReleaseStringCritical(jstring string, const jchar *cstring) { + functions->ReleaseStringCritical(this,string,cstring); + } + + jweak NewWeakGlobalRef(jobject obj) { + return functions->NewWeakGlobalRef(this,obj); + } + void DeleteWeakGlobalRef(jweak ref) { + functions->DeleteWeakGlobalRef(this,ref); + } + + jboolean ExceptionCheck() { + return functions->ExceptionCheck(this); + } + + jobject NewDirectByteBuffer(void* address, jlong capacity) { + return functions->NewDirectByteBuffer(this, address, capacity); + } + void* GetDirectBufferAddress(jobject buf) { + return functions->GetDirectBufferAddress(this, buf); + } + jlong GetDirectBufferCapacity(jobject buf) { + return functions->GetDirectBufferCapacity(this, buf); + } + jobjectRefType GetObjectRefType(jobject obj) { + return functions->GetObjectRefType(this, obj); + } + + /* Module Features */ + + jobject GetModule(jclass clazz) { + return functions->GetModule(this, clazz); + } + +#endif /* __cplusplus */ +}; + +typedef struct JavaVMOption { + char *optionString; + void *extraInfo; +} JavaVMOption; + +typedef struct JavaVMInitArgs { + jint version; + + jint nOptions; + JavaVMOption *options; + jboolean ignoreUnrecognized; +} JavaVMInitArgs; + +typedef struct JavaVMAttachArgs { + jint version; + + char *name; + jobject group; +} JavaVMAttachArgs; + +/* These will be VM-specific. */ + +#define JDK1_2 +#define JDK1_4 + +/* End VM-specific. */ + +struct JNIInvokeInterface_ { + void *reserved0; + void *reserved1; + void *reserved2; + + jint (JNICALL *DestroyJavaVM)(JavaVM *vm); + + jint (JNICALL *AttachCurrentThread)(JavaVM *vm, void **penv, void *args); + + jint (JNICALL *DetachCurrentThread)(JavaVM *vm); + + jint (JNICALL *GetEnv)(JavaVM *vm, void **penv, jint version); + + jint (JNICALL *AttachCurrentThreadAsDaemon)(JavaVM *vm, void **penv, void *args); +}; + +struct JavaVM_ { + const struct JNIInvokeInterface_ *functions; +#ifdef __cplusplus + + jint DestroyJavaVM() { + return functions->DestroyJavaVM(this); + } + jint AttachCurrentThread(void **penv, void *args) { + return functions->AttachCurrentThread(this, penv, args); + } + jint DetachCurrentThread() { + return functions->DetachCurrentThread(this); + } + + jint GetEnv(void **penv, jint version) { + return functions->GetEnv(this, penv, version); + } + jint AttachCurrentThreadAsDaemon(void **penv, void *args) { + return functions->AttachCurrentThreadAsDaemon(this, penv, args); + } +#endif +}; + +#ifdef _JNI_IMPLEMENTATION_ +#define _JNI_IMPORT_OR_EXPORT_ JNIEXPORT +#else +#define _JNI_IMPORT_OR_EXPORT_ JNIIMPORT +#endif +_JNI_IMPORT_OR_EXPORT_ jint JNICALL +JNI_GetDefaultJavaVMInitArgs(void *args); + +_JNI_IMPORT_OR_EXPORT_ jint JNICALL +JNI_CreateJavaVM(JavaVM **pvm, void **penv, void *args); + +_JNI_IMPORT_OR_EXPORT_ jint JNICALL +JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *); + +/* Defined by native libraries. */ +JNIEXPORT jint JNICALL +JNI_OnLoad(JavaVM *vm, void *reserved); + +JNIEXPORT void JNICALL +JNI_OnUnload(JavaVM *vm, void *reserved); + +#define JNI_VERSION_1_1 0x00010001 +#define JNI_VERSION_1_2 0x00010002 +#define JNI_VERSION_1_4 0x00010004 +#define JNI_VERSION_1_6 0x00010006 +#define JNI_VERSION_1_8 0x00010008 +#define JNI_VERSION_9 0x00090000 +#define JNI_VERSION_10 0x000a0000 + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* !_JAVASOFT_JNI_H_ */ diff -Nru pycharm-2018.3.5/jre64/include/jvmticmlr.h pycharm-2019.1/jre64/include/jvmticmlr.h --- pycharm-2018.3.5/jre64/include/jvmticmlr.h 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/include/jvmticmlr.h 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * This header file defines the data structures sent by the VM + * through the JVMTI CompiledMethodLoad callback function via the + * "void * compile_info" parameter. The memory pointed to by the + * compile_info parameter may not be referenced after returning from + * the CompiledMethodLoad callback. These are VM implementation + * specific data structures that may evolve in future releases. A + * JVMTI agent should interpret a non-NULL compile_info as a pointer + * to a region of memory containing a list of records. In a typical + * usage scenario, a JVMTI agent would cast each record to a + * jvmtiCompiledMethodLoadRecordHeader, a struct that represents + * arbitrary information. This struct contains a kind field to indicate + * the kind of information being passed, and a pointer to the next + * record. If the kind field indicates inlining information, then the + * agent would cast the record to a jvmtiCompiledMethodLoadInlineRecord. + * This record contains an array of PCStackInfo structs, which indicate + * for every pc address what are the methods on the invocation stack. + * The "methods" and "bcis" fields in each PCStackInfo struct specify a + * 1-1 mapping between these inlined methods and their bytecode indices. + * This can be used to derive the proper source lines of the inlined + * methods. + */ + +#ifndef _JVMTI_CMLR_H_ +#define _JVMTI_CMLR_H_ + +enum { + JVMTI_CMLR_MAJOR_VERSION_1 = 0x00000001, + JVMTI_CMLR_MINOR_VERSION_0 = 0x00000000, + + JVMTI_CMLR_MAJOR_VERSION = 0x00000001, + JVMTI_CMLR_MINOR_VERSION = 0x00000000 + + /* + * This comment is for the "JDK import from HotSpot" sanity check: + * version: 1.0.0 + */ +}; + +typedef enum { + JVMTI_CMLR_DUMMY = 1, + JVMTI_CMLR_INLINE_INFO = 2 +} jvmtiCMLRKind; + +/* + * Record that represents arbitrary information passed through JVMTI + * CompiledMethodLoadEvent void pointer. + */ +typedef struct _jvmtiCompiledMethodLoadRecordHeader { + jvmtiCMLRKind kind; /* id for the kind of info passed in the record */ + jint majorinfoversion; /* major and minor info version values. Init'ed */ + jint minorinfoversion; /* to current version value in jvmtiExport.cpp. */ + + struct _jvmtiCompiledMethodLoadRecordHeader* next; +} jvmtiCompiledMethodLoadRecordHeader; + +/* + * Record that gives information about the methods on the compile-time + * stack at a specific pc address of a compiled method. Each element in + * the methods array maps to same element in the bcis array. + */ +typedef struct _PCStackInfo { + void* pc; /* the pc address for this compiled method */ + jint numstackframes; /* number of methods on the stack */ + jmethodID* methods; /* array of numstackframes method ids */ + jint* bcis; /* array of numstackframes bytecode indices */ +} PCStackInfo; + +/* + * Record that contains inlining information for each pc address of + * an nmethod. + */ +typedef struct _jvmtiCompiledMethodLoadInlineRecord { + jvmtiCompiledMethodLoadRecordHeader header; /* common header for casting */ + jint numpcs; /* number of pc descriptors in this nmethod */ + PCStackInfo* pcinfo; /* array of numpcs pc descriptors */ +} jvmtiCompiledMethodLoadInlineRecord; + +/* + * Dummy record used to test that we can pass records with different + * information through the void pointer provided that they can be cast + * to a jvmtiCompiledMethodLoadRecordHeader. + */ + +typedef struct _jvmtiCompiledMethodLoadDummyRecord { + jvmtiCompiledMethodLoadRecordHeader header; /* common header for casting */ + char message[50]; +} jvmtiCompiledMethodLoadDummyRecord; + +#endif diff -Nru pycharm-2018.3.5/jre64/include/jvmti.h pycharm-2019.1/jre64/include/jvmti.h --- pycharm-2018.3.5/jre64/include/jvmti.h 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/include/jvmti.h 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,2625 @@ +/* + * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + /* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */ + + /* Include file for the Java(tm) Virtual Machine Tool Interface */ + +#ifndef _JAVA_JVMTI_H_ +#define _JAVA_JVMTI_H_ + +#include "jni.h" + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + JVMTI_VERSION_1 = 0x30010000, + JVMTI_VERSION_1_0 = 0x30010000, + JVMTI_VERSION_1_1 = 0x30010100, + JVMTI_VERSION_1_2 = 0x30010200, + JVMTI_VERSION_9 = 0x30090000, + JVMTI_VERSION_11 = 0x300B0000, + + JVMTI_VERSION = 0x30000000 + (11 * 0x10000) + (0 * 0x100) + 0 /* version: 11.0.0 */ +}; + +JNIEXPORT jint JNICALL +Agent_OnLoad(JavaVM *vm, char *options, void *reserved); + +JNIEXPORT jint JNICALL +Agent_OnAttach(JavaVM* vm, char* options, void* reserved); + +JNIEXPORT void JNICALL +Agent_OnUnload(JavaVM *vm); + + /* Forward declaration of the environment */ + +struct _jvmtiEnv; + +struct jvmtiInterface_1_; + +#ifdef __cplusplus +typedef _jvmtiEnv jvmtiEnv; +#else +typedef const struct jvmtiInterface_1_ *jvmtiEnv; +#endif /* __cplusplus */ + +/* Derived Base Types */ + +typedef jobject jthread; +typedef jobject jthreadGroup; +typedef jlong jlocation; +struct _jrawMonitorID; +typedef struct _jrawMonitorID *jrawMonitorID; +typedef struct JNINativeInterface_ jniNativeInterface; + + /* Constants */ + + + /* Thread State Flags */ + +enum { + JVMTI_THREAD_STATE_ALIVE = 0x0001, + JVMTI_THREAD_STATE_TERMINATED = 0x0002, + JVMTI_THREAD_STATE_RUNNABLE = 0x0004, + JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER = 0x0400, + JVMTI_THREAD_STATE_WAITING = 0x0080, + JVMTI_THREAD_STATE_WAITING_INDEFINITELY = 0x0010, + JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT = 0x0020, + JVMTI_THREAD_STATE_SLEEPING = 0x0040, + JVMTI_THREAD_STATE_IN_OBJECT_WAIT = 0x0100, + JVMTI_THREAD_STATE_PARKED = 0x0200, + JVMTI_THREAD_STATE_SUSPENDED = 0x100000, + JVMTI_THREAD_STATE_INTERRUPTED = 0x200000, + JVMTI_THREAD_STATE_IN_NATIVE = 0x400000, + JVMTI_THREAD_STATE_VENDOR_1 = 0x10000000, + JVMTI_THREAD_STATE_VENDOR_2 = 0x20000000, + JVMTI_THREAD_STATE_VENDOR_3 = 0x40000000 +}; + + /* java.lang.Thread.State Conversion Masks */ + +enum { + JVMTI_JAVA_LANG_THREAD_STATE_MASK = JVMTI_THREAD_STATE_TERMINATED | JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_RUNNABLE | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_INDEFINITELY | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT, + JVMTI_JAVA_LANG_THREAD_STATE_NEW = 0, + JVMTI_JAVA_LANG_THREAD_STATE_TERMINATED = JVMTI_THREAD_STATE_TERMINATED, + JVMTI_JAVA_LANG_THREAD_STATE_RUNNABLE = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_RUNNABLE, + JVMTI_JAVA_LANG_THREAD_STATE_BLOCKED = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER, + JVMTI_JAVA_LANG_THREAD_STATE_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_INDEFINITELY, + JVMTI_JAVA_LANG_THREAD_STATE_TIMED_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT +}; + + /* Thread Priority Constants */ + +enum { + JVMTI_THREAD_MIN_PRIORITY = 1, + JVMTI_THREAD_NORM_PRIORITY = 5, + JVMTI_THREAD_MAX_PRIORITY = 10 +}; + + /* Heap Filter Flags */ + +enum { + JVMTI_HEAP_FILTER_TAGGED = 0x4, + JVMTI_HEAP_FILTER_UNTAGGED = 0x8, + JVMTI_HEAP_FILTER_CLASS_TAGGED = 0x10, + JVMTI_HEAP_FILTER_CLASS_UNTAGGED = 0x20 +}; + + /* Heap Visit Control Flags */ + +enum { + JVMTI_VISIT_OBJECTS = 0x100, + JVMTI_VISIT_ABORT = 0x8000 +}; + + /* Heap Reference Enumeration */ + +typedef enum { + JVMTI_HEAP_REFERENCE_CLASS = 1, + JVMTI_HEAP_REFERENCE_FIELD = 2, + JVMTI_HEAP_REFERENCE_ARRAY_ELEMENT = 3, + JVMTI_HEAP_REFERENCE_CLASS_LOADER = 4, + JVMTI_HEAP_REFERENCE_SIGNERS = 5, + JVMTI_HEAP_REFERENCE_PROTECTION_DOMAIN = 6, + JVMTI_HEAP_REFERENCE_INTERFACE = 7, + JVMTI_HEAP_REFERENCE_STATIC_FIELD = 8, + JVMTI_HEAP_REFERENCE_CONSTANT_POOL = 9, + JVMTI_HEAP_REFERENCE_SUPERCLASS = 10, + JVMTI_HEAP_REFERENCE_JNI_GLOBAL = 21, + JVMTI_HEAP_REFERENCE_SYSTEM_CLASS = 22, + JVMTI_HEAP_REFERENCE_MONITOR = 23, + JVMTI_HEAP_REFERENCE_STACK_LOCAL = 24, + JVMTI_HEAP_REFERENCE_JNI_LOCAL = 25, + JVMTI_HEAP_REFERENCE_THREAD = 26, + JVMTI_HEAP_REFERENCE_OTHER = 27 +} jvmtiHeapReferenceKind; + + /* Primitive Type Enumeration */ + +typedef enum { + JVMTI_PRIMITIVE_TYPE_BOOLEAN = 90, + JVMTI_PRIMITIVE_TYPE_BYTE = 66, + JVMTI_PRIMITIVE_TYPE_CHAR = 67, + JVMTI_PRIMITIVE_TYPE_SHORT = 83, + JVMTI_PRIMITIVE_TYPE_INT = 73, + JVMTI_PRIMITIVE_TYPE_LONG = 74, + JVMTI_PRIMITIVE_TYPE_FLOAT = 70, + JVMTI_PRIMITIVE_TYPE_DOUBLE = 68 +} jvmtiPrimitiveType; + + /* Heap Object Filter Enumeration */ + +typedef enum { + JVMTI_HEAP_OBJECT_TAGGED = 1, + JVMTI_HEAP_OBJECT_UNTAGGED = 2, + JVMTI_HEAP_OBJECT_EITHER = 3 +} jvmtiHeapObjectFilter; + + /* Heap Root Kind Enumeration */ + +typedef enum { + JVMTI_HEAP_ROOT_JNI_GLOBAL = 1, + JVMTI_HEAP_ROOT_SYSTEM_CLASS = 2, + JVMTI_HEAP_ROOT_MONITOR = 3, + JVMTI_HEAP_ROOT_STACK_LOCAL = 4, + JVMTI_HEAP_ROOT_JNI_LOCAL = 5, + JVMTI_HEAP_ROOT_THREAD = 6, + JVMTI_HEAP_ROOT_OTHER = 7 +} jvmtiHeapRootKind; + + /* Object Reference Enumeration */ + +typedef enum { + JVMTI_REFERENCE_CLASS = 1, + JVMTI_REFERENCE_FIELD = 2, + JVMTI_REFERENCE_ARRAY_ELEMENT = 3, + JVMTI_REFERENCE_CLASS_LOADER = 4, + JVMTI_REFERENCE_SIGNERS = 5, + JVMTI_REFERENCE_PROTECTION_DOMAIN = 6, + JVMTI_REFERENCE_INTERFACE = 7, + JVMTI_REFERENCE_STATIC_FIELD = 8, + JVMTI_REFERENCE_CONSTANT_POOL = 9 +} jvmtiObjectReferenceKind; + + /* Iteration Control Enumeration */ + +typedef enum { + JVMTI_ITERATION_CONTINUE = 1, + JVMTI_ITERATION_IGNORE = 2, + JVMTI_ITERATION_ABORT = 0 +} jvmtiIterationControl; + + /* Class Status Flags */ + +enum { + JVMTI_CLASS_STATUS_VERIFIED = 1, + JVMTI_CLASS_STATUS_PREPARED = 2, + JVMTI_CLASS_STATUS_INITIALIZED = 4, + JVMTI_CLASS_STATUS_ERROR = 8, + JVMTI_CLASS_STATUS_ARRAY = 16, + JVMTI_CLASS_STATUS_PRIMITIVE = 32 +}; + + /* Event Enable/Disable */ + +typedef enum { + JVMTI_ENABLE = 1, + JVMTI_DISABLE = 0 +} jvmtiEventMode; + + /* Extension Function/Event Parameter Types */ + +typedef enum { + JVMTI_TYPE_JBYTE = 101, + JVMTI_TYPE_JCHAR = 102, + JVMTI_TYPE_JSHORT = 103, + JVMTI_TYPE_JINT = 104, + JVMTI_TYPE_JLONG = 105, + JVMTI_TYPE_JFLOAT = 106, + JVMTI_TYPE_JDOUBLE = 107, + JVMTI_TYPE_JBOOLEAN = 108, + JVMTI_TYPE_JOBJECT = 109, + JVMTI_TYPE_JTHREAD = 110, + JVMTI_TYPE_JCLASS = 111, + JVMTI_TYPE_JVALUE = 112, + JVMTI_TYPE_JFIELDID = 113, + JVMTI_TYPE_JMETHODID = 114, + JVMTI_TYPE_CCHAR = 115, + JVMTI_TYPE_CVOID = 116, + JVMTI_TYPE_JNIENV = 117 +} jvmtiParamTypes; + + /* Extension Function/Event Parameter Kinds */ + +typedef enum { + JVMTI_KIND_IN = 91, + JVMTI_KIND_IN_PTR = 92, + JVMTI_KIND_IN_BUF = 93, + JVMTI_KIND_ALLOC_BUF = 94, + JVMTI_KIND_ALLOC_ALLOC_BUF = 95, + JVMTI_KIND_OUT = 96, + JVMTI_KIND_OUT_BUF = 97 +} jvmtiParamKind; + + /* Timer Kinds */ + +typedef enum { + JVMTI_TIMER_USER_CPU = 30, + JVMTI_TIMER_TOTAL_CPU = 31, + JVMTI_TIMER_ELAPSED = 32 +} jvmtiTimerKind; + + /* Phases of execution */ + +typedef enum { + JVMTI_PHASE_ONLOAD = 1, + JVMTI_PHASE_PRIMORDIAL = 2, + JVMTI_PHASE_START = 6, + JVMTI_PHASE_LIVE = 4, + JVMTI_PHASE_DEAD = 8 +} jvmtiPhase; + + /* Version Interface Types */ + +enum { + JVMTI_VERSION_INTERFACE_JNI = 0x00000000, + JVMTI_VERSION_INTERFACE_JVMTI = 0x30000000 +}; + + /* Version Masks */ + +enum { + JVMTI_VERSION_MASK_INTERFACE_TYPE = 0x70000000, + JVMTI_VERSION_MASK_MAJOR = 0x0FFF0000, + JVMTI_VERSION_MASK_MINOR = 0x0000FF00, + JVMTI_VERSION_MASK_MICRO = 0x000000FF +}; + + /* Version Shifts */ + +enum { + JVMTI_VERSION_SHIFT_MAJOR = 16, + JVMTI_VERSION_SHIFT_MINOR = 8, + JVMTI_VERSION_SHIFT_MICRO = 0 +}; + + /* Verbose Flag Enumeration */ + +typedef enum { + JVMTI_VERBOSE_OTHER = 0, + JVMTI_VERBOSE_GC = 1, + JVMTI_VERBOSE_CLASS = 2, + JVMTI_VERBOSE_JNI = 4 +} jvmtiVerboseFlag; + + /* JLocation Format Enumeration */ + +typedef enum { + JVMTI_JLOCATION_JVMBCI = 1, + JVMTI_JLOCATION_MACHINEPC = 2, + JVMTI_JLOCATION_OTHER = 0 +} jvmtiJlocationFormat; + + /* Resource Exhaustion Flags */ + +enum { + JVMTI_RESOURCE_EXHAUSTED_OOM_ERROR = 0x0001, + JVMTI_RESOURCE_EXHAUSTED_JAVA_HEAP = 0x0002, + JVMTI_RESOURCE_EXHAUSTED_THREADS = 0x0004 +}; + + /* Errors */ + +typedef enum { + JVMTI_ERROR_NONE = 0, + JVMTI_ERROR_INVALID_THREAD = 10, + JVMTI_ERROR_INVALID_THREAD_GROUP = 11, + JVMTI_ERROR_INVALID_PRIORITY = 12, + JVMTI_ERROR_THREAD_NOT_SUSPENDED = 13, + JVMTI_ERROR_THREAD_SUSPENDED = 14, + JVMTI_ERROR_THREAD_NOT_ALIVE = 15, + JVMTI_ERROR_INVALID_OBJECT = 20, + JVMTI_ERROR_INVALID_CLASS = 21, + JVMTI_ERROR_CLASS_NOT_PREPARED = 22, + JVMTI_ERROR_INVALID_METHODID = 23, + JVMTI_ERROR_INVALID_LOCATION = 24, + JVMTI_ERROR_INVALID_FIELDID = 25, + JVMTI_ERROR_INVALID_MODULE = 26, + JVMTI_ERROR_NO_MORE_FRAMES = 31, + JVMTI_ERROR_OPAQUE_FRAME = 32, + JVMTI_ERROR_TYPE_MISMATCH = 34, + JVMTI_ERROR_INVALID_SLOT = 35, + JVMTI_ERROR_DUPLICATE = 40, + JVMTI_ERROR_NOT_FOUND = 41, + JVMTI_ERROR_INVALID_MONITOR = 50, + JVMTI_ERROR_NOT_MONITOR_OWNER = 51, + JVMTI_ERROR_INTERRUPT = 52, + JVMTI_ERROR_INVALID_CLASS_FORMAT = 60, + JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION = 61, + JVMTI_ERROR_FAILS_VERIFICATION = 62, + JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED = 63, + JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED = 64, + JVMTI_ERROR_INVALID_TYPESTATE = 65, + JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED = 66, + JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED = 67, + JVMTI_ERROR_UNSUPPORTED_VERSION = 68, + JVMTI_ERROR_NAMES_DONT_MATCH = 69, + JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED = 70, + JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71, + JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_ATTRIBUTE_CHANGED = 72, + JVMTI_ERROR_UNMODIFIABLE_CLASS = 79, + JVMTI_ERROR_UNMODIFIABLE_MODULE = 80, + JVMTI_ERROR_NOT_AVAILABLE = 98, + JVMTI_ERROR_MUST_POSSESS_CAPABILITY = 99, + JVMTI_ERROR_NULL_POINTER = 100, + JVMTI_ERROR_ABSENT_INFORMATION = 101, + JVMTI_ERROR_INVALID_EVENT_TYPE = 102, + JVMTI_ERROR_ILLEGAL_ARGUMENT = 103, + JVMTI_ERROR_NATIVE_METHOD = 104, + JVMTI_ERROR_CLASS_LOADER_UNSUPPORTED = 106, + JVMTI_ERROR_OUT_OF_MEMORY = 110, + JVMTI_ERROR_ACCESS_DENIED = 111, + JVMTI_ERROR_WRONG_PHASE = 112, + JVMTI_ERROR_INTERNAL = 113, + JVMTI_ERROR_UNATTACHED_THREAD = 115, + JVMTI_ERROR_INVALID_ENVIRONMENT = 116, + JVMTI_ERROR_MAX = 116 +} jvmtiError; + + /* Event IDs */ + +typedef enum { + JVMTI_MIN_EVENT_TYPE_VAL = 50, + JVMTI_EVENT_VM_INIT = 50, + JVMTI_EVENT_VM_DEATH = 51, + JVMTI_EVENT_THREAD_START = 52, + JVMTI_EVENT_THREAD_END = 53, + JVMTI_EVENT_CLASS_FILE_LOAD_HOOK = 54, + JVMTI_EVENT_CLASS_LOAD = 55, + JVMTI_EVENT_CLASS_PREPARE = 56, + JVMTI_EVENT_VM_START = 57, + JVMTI_EVENT_EXCEPTION = 58, + JVMTI_EVENT_EXCEPTION_CATCH = 59, + JVMTI_EVENT_SINGLE_STEP = 60, + JVMTI_EVENT_FRAME_POP = 61, + JVMTI_EVENT_BREAKPOINT = 62, + JVMTI_EVENT_FIELD_ACCESS = 63, + JVMTI_EVENT_FIELD_MODIFICATION = 64, + JVMTI_EVENT_METHOD_ENTRY = 65, + JVMTI_EVENT_METHOD_EXIT = 66, + JVMTI_EVENT_NATIVE_METHOD_BIND = 67, + JVMTI_EVENT_COMPILED_METHOD_LOAD = 68, + JVMTI_EVENT_COMPILED_METHOD_UNLOAD = 69, + JVMTI_EVENT_DYNAMIC_CODE_GENERATED = 70, + JVMTI_EVENT_DATA_DUMP_REQUEST = 71, + JVMTI_EVENT_MONITOR_WAIT = 73, + JVMTI_EVENT_MONITOR_WAITED = 74, + JVMTI_EVENT_MONITOR_CONTENDED_ENTER = 75, + JVMTI_EVENT_MONITOR_CONTENDED_ENTERED = 76, + JVMTI_EVENT_RESOURCE_EXHAUSTED = 80, + JVMTI_EVENT_GARBAGE_COLLECTION_START = 81, + JVMTI_EVENT_GARBAGE_COLLECTION_FINISH = 82, + JVMTI_EVENT_OBJECT_FREE = 83, + JVMTI_EVENT_VM_OBJECT_ALLOC = 84, + JVMTI_EVENT_SAMPLED_OBJECT_ALLOC = 86, + JVMTI_MAX_EVENT_TYPE_VAL = 86 +} jvmtiEvent; + + + /* Pre-Declarations */ +struct _jvmtiThreadInfo; +typedef struct _jvmtiThreadInfo jvmtiThreadInfo; +struct _jvmtiMonitorStackDepthInfo; +typedef struct _jvmtiMonitorStackDepthInfo jvmtiMonitorStackDepthInfo; +struct _jvmtiThreadGroupInfo; +typedef struct _jvmtiThreadGroupInfo jvmtiThreadGroupInfo; +struct _jvmtiFrameInfo; +typedef struct _jvmtiFrameInfo jvmtiFrameInfo; +struct _jvmtiStackInfo; +typedef struct _jvmtiStackInfo jvmtiStackInfo; +struct _jvmtiHeapReferenceInfoField; +typedef struct _jvmtiHeapReferenceInfoField jvmtiHeapReferenceInfoField; +struct _jvmtiHeapReferenceInfoArray; +typedef struct _jvmtiHeapReferenceInfoArray jvmtiHeapReferenceInfoArray; +struct _jvmtiHeapReferenceInfoConstantPool; +typedef struct _jvmtiHeapReferenceInfoConstantPool jvmtiHeapReferenceInfoConstantPool; +struct _jvmtiHeapReferenceInfoStackLocal; +typedef struct _jvmtiHeapReferenceInfoStackLocal jvmtiHeapReferenceInfoStackLocal; +struct _jvmtiHeapReferenceInfoJniLocal; +typedef struct _jvmtiHeapReferenceInfoJniLocal jvmtiHeapReferenceInfoJniLocal; +struct _jvmtiHeapReferenceInfoReserved; +typedef struct _jvmtiHeapReferenceInfoReserved jvmtiHeapReferenceInfoReserved; +union _jvmtiHeapReferenceInfo; +typedef union _jvmtiHeapReferenceInfo jvmtiHeapReferenceInfo; +struct _jvmtiHeapCallbacks; +typedef struct _jvmtiHeapCallbacks jvmtiHeapCallbacks; +struct _jvmtiClassDefinition; +typedef struct _jvmtiClassDefinition jvmtiClassDefinition; +struct _jvmtiMonitorUsage; +typedef struct _jvmtiMonitorUsage jvmtiMonitorUsage; +struct _jvmtiLineNumberEntry; +typedef struct _jvmtiLineNumberEntry jvmtiLineNumberEntry; +struct _jvmtiLocalVariableEntry; +typedef struct _jvmtiLocalVariableEntry jvmtiLocalVariableEntry; +struct _jvmtiParamInfo; +typedef struct _jvmtiParamInfo jvmtiParamInfo; +struct _jvmtiExtensionFunctionInfo; +typedef struct _jvmtiExtensionFunctionInfo jvmtiExtensionFunctionInfo; +struct _jvmtiExtensionEventInfo; +typedef struct _jvmtiExtensionEventInfo jvmtiExtensionEventInfo; +struct _jvmtiTimerInfo; +typedef struct _jvmtiTimerInfo jvmtiTimerInfo; +struct _jvmtiAddrLocationMap; +typedef struct _jvmtiAddrLocationMap jvmtiAddrLocationMap; + + /* Function Types */ + +typedef void (JNICALL *jvmtiStartFunction) + (jvmtiEnv* jvmti_env, JNIEnv* jni_env, void* arg); + +typedef jint (JNICALL *jvmtiHeapIterationCallback) + (jlong class_tag, jlong size, jlong* tag_ptr, jint length, void* user_data); + +typedef jint (JNICALL *jvmtiHeapReferenceCallback) + (jvmtiHeapReferenceKind reference_kind, const jvmtiHeapReferenceInfo* reference_info, jlong class_tag, jlong referrer_class_tag, jlong size, jlong* tag_ptr, jlong* referrer_tag_ptr, jint length, void* user_data); + +typedef jint (JNICALL *jvmtiPrimitiveFieldCallback) + (jvmtiHeapReferenceKind kind, const jvmtiHeapReferenceInfo* info, jlong object_class_tag, jlong* object_tag_ptr, jvalue value, jvmtiPrimitiveType value_type, void* user_data); + +typedef jint (JNICALL *jvmtiArrayPrimitiveValueCallback) + (jlong class_tag, jlong size, jlong* tag_ptr, jint element_count, jvmtiPrimitiveType element_type, const void* elements, void* user_data); + +typedef jint (JNICALL *jvmtiStringPrimitiveValueCallback) + (jlong class_tag, jlong size, jlong* tag_ptr, const jchar* value, jint value_length, void* user_data); + +typedef jint (JNICALL *jvmtiReservedCallback) + (); + +typedef jvmtiIterationControl (JNICALL *jvmtiHeapObjectCallback) + (jlong class_tag, jlong size, jlong* tag_ptr, void* user_data); + +typedef jvmtiIterationControl (JNICALL *jvmtiHeapRootCallback) + (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong* tag_ptr, void* user_data); + +typedef jvmtiIterationControl (JNICALL *jvmtiStackReferenceCallback) + (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong* tag_ptr, jlong thread_tag, jint depth, jmethodID method, jint slot, void* user_data); + +typedef jvmtiIterationControl (JNICALL *jvmtiObjectReferenceCallback) + (jvmtiObjectReferenceKind reference_kind, jlong class_tag, jlong size, jlong* tag_ptr, jlong referrer_tag, jint referrer_index, void* user_data); + +typedef jvmtiError (JNICALL *jvmtiExtensionFunction) + (jvmtiEnv* jvmti_env, ...); + +typedef void (JNICALL *jvmtiExtensionEvent) + (jvmtiEnv* jvmti_env, ...); + + + /* Structure Types */ +struct _jvmtiThreadInfo { + char* name; + jint priority; + jboolean is_daemon; + jthreadGroup thread_group; + jobject context_class_loader; +}; +struct _jvmtiMonitorStackDepthInfo { + jobject monitor; + jint stack_depth; +}; +struct _jvmtiThreadGroupInfo { + jthreadGroup parent; + char* name; + jint max_priority; + jboolean is_daemon; +}; +struct _jvmtiFrameInfo { + jmethodID method; + jlocation location; +}; +struct _jvmtiStackInfo { + jthread thread; + jint state; + jvmtiFrameInfo* frame_buffer; + jint frame_count; +}; +struct _jvmtiHeapReferenceInfoField { + jint index; +}; +struct _jvmtiHeapReferenceInfoArray { + jint index; +}; +struct _jvmtiHeapReferenceInfoConstantPool { + jint index; +}; +struct _jvmtiHeapReferenceInfoStackLocal { + jlong thread_tag; + jlong thread_id; + jint depth; + jmethodID method; + jlocation location; + jint slot; +}; +struct _jvmtiHeapReferenceInfoJniLocal { + jlong thread_tag; + jlong thread_id; + jint depth; + jmethodID method; +}; +struct _jvmtiHeapReferenceInfoReserved { + jlong reserved1; + jlong reserved2; + jlong reserved3; + jlong reserved4; + jlong reserved5; + jlong reserved6; + jlong reserved7; + jlong reserved8; +}; +union _jvmtiHeapReferenceInfo { + jvmtiHeapReferenceInfoField field; + jvmtiHeapReferenceInfoArray array; + jvmtiHeapReferenceInfoConstantPool constant_pool; + jvmtiHeapReferenceInfoStackLocal stack_local; + jvmtiHeapReferenceInfoJniLocal jni_local; + jvmtiHeapReferenceInfoReserved other; +}; +struct _jvmtiHeapCallbacks { + jvmtiHeapIterationCallback heap_iteration_callback; + jvmtiHeapReferenceCallback heap_reference_callback; + jvmtiPrimitiveFieldCallback primitive_field_callback; + jvmtiArrayPrimitiveValueCallback array_primitive_value_callback; + jvmtiStringPrimitiveValueCallback string_primitive_value_callback; + jvmtiReservedCallback reserved5; + jvmtiReservedCallback reserved6; + jvmtiReservedCallback reserved7; + jvmtiReservedCallback reserved8; + jvmtiReservedCallback reserved9; + jvmtiReservedCallback reserved10; + jvmtiReservedCallback reserved11; + jvmtiReservedCallback reserved12; + jvmtiReservedCallback reserved13; + jvmtiReservedCallback reserved14; + jvmtiReservedCallback reserved15; +}; +struct _jvmtiClassDefinition { + jclass klass; + jint class_byte_count; + const unsigned char* class_bytes; +}; +struct _jvmtiMonitorUsage { + jthread owner; + jint entry_count; + jint waiter_count; + jthread* waiters; + jint notify_waiter_count; + jthread* notify_waiters; +}; +struct _jvmtiLineNumberEntry { + jlocation start_location; + jint line_number; +}; +struct _jvmtiLocalVariableEntry { + jlocation start_location; + jint length; + char* name; + char* signature; + char* generic_signature; + jint slot; +}; +struct _jvmtiParamInfo { + char* name; + jvmtiParamKind kind; + jvmtiParamTypes base_type; + jboolean null_ok; +}; +struct _jvmtiExtensionFunctionInfo { + jvmtiExtensionFunction func; + char* id; + char* short_description; + jint param_count; + jvmtiParamInfo* params; + jint error_count; + jvmtiError* errors; +}; +struct _jvmtiExtensionEventInfo { + jint extension_event_index; + char* id; + char* short_description; + jint param_count; + jvmtiParamInfo* params; +}; +struct _jvmtiTimerInfo { + jlong max_value; + jboolean may_skip_forward; + jboolean may_skip_backward; + jvmtiTimerKind kind; + jlong reserved1; + jlong reserved2; +}; +struct _jvmtiAddrLocationMap { + const void* start_address; + jlocation location; +}; + +typedef struct { + unsigned int can_tag_objects : 1; + unsigned int can_generate_field_modification_events : 1; + unsigned int can_generate_field_access_events : 1; + unsigned int can_get_bytecodes : 1; + unsigned int can_get_synthetic_attribute : 1; + unsigned int can_get_owned_monitor_info : 1; + unsigned int can_get_current_contended_monitor : 1; + unsigned int can_get_monitor_info : 1; + unsigned int can_pop_frame : 1; + unsigned int can_redefine_classes : 1; + unsigned int can_signal_thread : 1; + unsigned int can_get_source_file_name : 1; + unsigned int can_get_line_numbers : 1; + unsigned int can_get_source_debug_extension : 1; + unsigned int can_access_local_variables : 1; + unsigned int can_maintain_original_method_order : 1; + unsigned int can_generate_single_step_events : 1; + unsigned int can_generate_exception_events : 1; + unsigned int can_generate_frame_pop_events : 1; + unsigned int can_generate_breakpoint_events : 1; + unsigned int can_suspend : 1; + unsigned int can_redefine_any_class : 1; + unsigned int can_get_current_thread_cpu_time : 1; + unsigned int can_get_thread_cpu_time : 1; + unsigned int can_generate_method_entry_events : 1; + unsigned int can_generate_method_exit_events : 1; + unsigned int can_generate_all_class_hook_events : 1; + unsigned int can_generate_compiled_method_load_events : 1; + unsigned int can_generate_monitor_events : 1; + unsigned int can_generate_vm_object_alloc_events : 1; + unsigned int can_generate_native_method_bind_events : 1; + unsigned int can_generate_garbage_collection_events : 1; + unsigned int can_generate_object_free_events : 1; + unsigned int can_force_early_return : 1; + unsigned int can_get_owned_monitor_stack_depth_info : 1; + unsigned int can_get_constant_pool : 1; + unsigned int can_set_native_method_prefix : 1; + unsigned int can_retransform_classes : 1; + unsigned int can_retransform_any_class : 1; + unsigned int can_generate_resource_exhaustion_heap_events : 1; + unsigned int can_generate_resource_exhaustion_threads_events : 1; + unsigned int can_generate_early_vmstart : 1; + unsigned int can_generate_early_class_hook_events : 1; + unsigned int can_generate_sampled_object_alloc_events : 1; + unsigned int : 4; + unsigned int : 16; + unsigned int : 16; + unsigned int : 16; + unsigned int : 16; + unsigned int : 16; +} jvmtiCapabilities; + + + /* Event Definitions */ + +typedef void (JNICALL *jvmtiEventReserved)(void); + + +typedef void (JNICALL *jvmtiEventBreakpoint) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jmethodID method, + jlocation location); + +typedef void (JNICALL *jvmtiEventClassFileLoadHook) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jclass class_being_redefined, + jobject loader, + const char* name, + jobject protection_domain, + jint class_data_len, + const unsigned char* class_data, + jint* new_class_data_len, + unsigned char** new_class_data); + +typedef void (JNICALL *jvmtiEventClassLoad) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jclass klass); + +typedef void (JNICALL *jvmtiEventClassPrepare) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jclass klass); + +typedef void (JNICALL *jvmtiEventCompiledMethodLoad) + (jvmtiEnv *jvmti_env, + jmethodID method, + jint code_size, + const void* code_addr, + jint map_length, + const jvmtiAddrLocationMap* map, + const void* compile_info); + +typedef void (JNICALL *jvmtiEventCompiledMethodUnload) + (jvmtiEnv *jvmti_env, + jmethodID method, + const void* code_addr); + +typedef void (JNICALL *jvmtiEventDataDumpRequest) + (jvmtiEnv *jvmti_env); + +typedef void (JNICALL *jvmtiEventDynamicCodeGenerated) + (jvmtiEnv *jvmti_env, + const char* name, + const void* address, + jint length); + +typedef void (JNICALL *jvmtiEventException) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jmethodID method, + jlocation location, + jobject exception, + jmethodID catch_method, + jlocation catch_location); + +typedef void (JNICALL *jvmtiEventExceptionCatch) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jmethodID method, + jlocation location, + jobject exception); + +typedef void (JNICALL *jvmtiEventFieldAccess) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jmethodID method, + jlocation location, + jclass field_klass, + jobject object, + jfieldID field); + +typedef void (JNICALL *jvmtiEventFieldModification) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jmethodID method, + jlocation location, + jclass field_klass, + jobject object, + jfieldID field, + char signature_type, + jvalue new_value); + +typedef void (JNICALL *jvmtiEventFramePop) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jmethodID method, + jboolean was_popped_by_exception); + +typedef void (JNICALL *jvmtiEventGarbageCollectionFinish) + (jvmtiEnv *jvmti_env); + +typedef void (JNICALL *jvmtiEventGarbageCollectionStart) + (jvmtiEnv *jvmti_env); + +typedef void (JNICALL *jvmtiEventMethodEntry) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jmethodID method); + +typedef void (JNICALL *jvmtiEventMethodExit) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jmethodID method, + jboolean was_popped_by_exception, + jvalue return_value); + +typedef void (JNICALL *jvmtiEventMonitorContendedEnter) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jobject object); + +typedef void (JNICALL *jvmtiEventMonitorContendedEntered) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jobject object); + +typedef void (JNICALL *jvmtiEventMonitorWait) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jobject object, + jlong timeout); + +typedef void (JNICALL *jvmtiEventMonitorWaited) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jobject object, + jboolean timed_out); + +typedef void (JNICALL *jvmtiEventNativeMethodBind) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jmethodID method, + void* address, + void** new_address_ptr); + +typedef void (JNICALL *jvmtiEventObjectFree) + (jvmtiEnv *jvmti_env, + jlong tag); + +typedef void (JNICALL *jvmtiEventResourceExhausted) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jint flags, + const void* reserved, + const char* description); + +typedef void (JNICALL *jvmtiEventSampledObjectAlloc) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jobject object, + jclass object_klass, + jlong size); + +typedef void (JNICALL *jvmtiEventSingleStep) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jmethodID method, + jlocation location); + +typedef void (JNICALL *jvmtiEventThreadEnd) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread); + +typedef void (JNICALL *jvmtiEventThreadStart) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread); + +typedef void (JNICALL *jvmtiEventVMDeath) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env); + +typedef void (JNICALL *jvmtiEventVMInit) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread); + +typedef void (JNICALL *jvmtiEventVMObjectAlloc) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env, + jthread thread, + jobject object, + jclass object_klass, + jlong size); + +typedef void (JNICALL *jvmtiEventVMStart) + (jvmtiEnv *jvmti_env, + JNIEnv* jni_env); + + /* Event Callback Structure */ + +typedef struct { + /* 50 : VM Initialization Event */ + jvmtiEventVMInit VMInit; + /* 51 : VM Death Event */ + jvmtiEventVMDeath VMDeath; + /* 52 : Thread Start */ + jvmtiEventThreadStart ThreadStart; + /* 53 : Thread End */ + jvmtiEventThreadEnd ThreadEnd; + /* 54 : Class File Load Hook */ + jvmtiEventClassFileLoadHook ClassFileLoadHook; + /* 55 : Class Load */ + jvmtiEventClassLoad ClassLoad; + /* 56 : Class Prepare */ + jvmtiEventClassPrepare ClassPrepare; + /* 57 : VM Start Event */ + jvmtiEventVMStart VMStart; + /* 58 : Exception */ + jvmtiEventException Exception; + /* 59 : Exception Catch */ + jvmtiEventExceptionCatch ExceptionCatch; + /* 60 : Single Step */ + jvmtiEventSingleStep SingleStep; + /* 61 : Frame Pop */ + jvmtiEventFramePop FramePop; + /* 62 : Breakpoint */ + jvmtiEventBreakpoint Breakpoint; + /* 63 : Field Access */ + jvmtiEventFieldAccess FieldAccess; + /* 64 : Field Modification */ + jvmtiEventFieldModification FieldModification; + /* 65 : Method Entry */ + jvmtiEventMethodEntry MethodEntry; + /* 66 : Method Exit */ + jvmtiEventMethodExit MethodExit; + /* 67 : Native Method Bind */ + jvmtiEventNativeMethodBind NativeMethodBind; + /* 68 : Compiled Method Load */ + jvmtiEventCompiledMethodLoad CompiledMethodLoad; + /* 69 : Compiled Method Unload */ + jvmtiEventCompiledMethodUnload CompiledMethodUnload; + /* 70 : Dynamic Code Generated */ + jvmtiEventDynamicCodeGenerated DynamicCodeGenerated; + /* 71 : Data Dump Request */ + jvmtiEventDataDumpRequest DataDumpRequest; + /* 72 */ + jvmtiEventReserved reserved72; + /* 73 : Monitor Wait */ + jvmtiEventMonitorWait MonitorWait; + /* 74 : Monitor Waited */ + jvmtiEventMonitorWaited MonitorWaited; + /* 75 : Monitor Contended Enter */ + jvmtiEventMonitorContendedEnter MonitorContendedEnter; + /* 76 : Monitor Contended Entered */ + jvmtiEventMonitorContendedEntered MonitorContendedEntered; + /* 77 */ + jvmtiEventReserved reserved77; + /* 78 */ + jvmtiEventReserved reserved78; + /* 79 */ + jvmtiEventReserved reserved79; + /* 80 : Resource Exhausted */ + jvmtiEventResourceExhausted ResourceExhausted; + /* 81 : Garbage Collection Start */ + jvmtiEventGarbageCollectionStart GarbageCollectionStart; + /* 82 : Garbage Collection Finish */ + jvmtiEventGarbageCollectionFinish GarbageCollectionFinish; + /* 83 : Object Free */ + jvmtiEventObjectFree ObjectFree; + /* 84 : VM Object Allocation */ + jvmtiEventVMObjectAlloc VMObjectAlloc; + /* 85 */ + jvmtiEventReserved reserved85; + /* 86 : Sampled Object Allocation */ + jvmtiEventSampledObjectAlloc SampledObjectAlloc; +} jvmtiEventCallbacks; + + + /* Function Interface */ + +typedef struct jvmtiInterface_1_ { + + /* 1 : RESERVED */ + void *reserved1; + + /* 2 : Set Event Notification Mode */ + jvmtiError (JNICALL *SetEventNotificationMode) (jvmtiEnv* env, + jvmtiEventMode mode, + jvmtiEvent event_type, + jthread event_thread, + ...); + + /* 3 : Get All Modules */ + jvmtiError (JNICALL *GetAllModules) (jvmtiEnv* env, + jint* module_count_ptr, + jobject** modules_ptr); + + /* 4 : Get All Threads */ + jvmtiError (JNICALL *GetAllThreads) (jvmtiEnv* env, + jint* threads_count_ptr, + jthread** threads_ptr); + + /* 5 : Suspend Thread */ + jvmtiError (JNICALL *SuspendThread) (jvmtiEnv* env, + jthread thread); + + /* 6 : Resume Thread */ + jvmtiError (JNICALL *ResumeThread) (jvmtiEnv* env, + jthread thread); + + /* 7 : Stop Thread */ + jvmtiError (JNICALL *StopThread) (jvmtiEnv* env, + jthread thread, + jobject exception); + + /* 8 : Interrupt Thread */ + jvmtiError (JNICALL *InterruptThread) (jvmtiEnv* env, + jthread thread); + + /* 9 : Get Thread Info */ + jvmtiError (JNICALL *GetThreadInfo) (jvmtiEnv* env, + jthread thread, + jvmtiThreadInfo* info_ptr); + + /* 10 : Get Owned Monitor Info */ + jvmtiError (JNICALL *GetOwnedMonitorInfo) (jvmtiEnv* env, + jthread thread, + jint* owned_monitor_count_ptr, + jobject** owned_monitors_ptr); + + /* 11 : Get Current Contended Monitor */ + jvmtiError (JNICALL *GetCurrentContendedMonitor) (jvmtiEnv* env, + jthread thread, + jobject* monitor_ptr); + + /* 12 : Run Agent Thread */ + jvmtiError (JNICALL *RunAgentThread) (jvmtiEnv* env, + jthread thread, + jvmtiStartFunction proc, + const void* arg, + jint priority); + + /* 13 : Get Top Thread Groups */ + jvmtiError (JNICALL *GetTopThreadGroups) (jvmtiEnv* env, + jint* group_count_ptr, + jthreadGroup** groups_ptr); + + /* 14 : Get Thread Group Info */ + jvmtiError (JNICALL *GetThreadGroupInfo) (jvmtiEnv* env, + jthreadGroup group, + jvmtiThreadGroupInfo* info_ptr); + + /* 15 : Get Thread Group Children */ + jvmtiError (JNICALL *GetThreadGroupChildren) (jvmtiEnv* env, + jthreadGroup group, + jint* thread_count_ptr, + jthread** threads_ptr, + jint* group_count_ptr, + jthreadGroup** groups_ptr); + + /* 16 : Get Frame Count */ + jvmtiError (JNICALL *GetFrameCount) (jvmtiEnv* env, + jthread thread, + jint* count_ptr); + + /* 17 : Get Thread State */ + jvmtiError (JNICALL *GetThreadState) (jvmtiEnv* env, + jthread thread, + jint* thread_state_ptr); + + /* 18 : Get Current Thread */ + jvmtiError (JNICALL *GetCurrentThread) (jvmtiEnv* env, + jthread* thread_ptr); + + /* 19 : Get Frame Location */ + jvmtiError (JNICALL *GetFrameLocation) (jvmtiEnv* env, + jthread thread, + jint depth, + jmethodID* method_ptr, + jlocation* location_ptr); + + /* 20 : Notify Frame Pop */ + jvmtiError (JNICALL *NotifyFramePop) (jvmtiEnv* env, + jthread thread, + jint depth); + + /* 21 : Get Local Variable - Object */ + jvmtiError (JNICALL *GetLocalObject) (jvmtiEnv* env, + jthread thread, + jint depth, + jint slot, + jobject* value_ptr); + + /* 22 : Get Local Variable - Int */ + jvmtiError (JNICALL *GetLocalInt) (jvmtiEnv* env, + jthread thread, + jint depth, + jint slot, + jint* value_ptr); + + /* 23 : Get Local Variable - Long */ + jvmtiError (JNICALL *GetLocalLong) (jvmtiEnv* env, + jthread thread, + jint depth, + jint slot, + jlong* value_ptr); + + /* 24 : Get Local Variable - Float */ + jvmtiError (JNICALL *GetLocalFloat) (jvmtiEnv* env, + jthread thread, + jint depth, + jint slot, + jfloat* value_ptr); + + /* 25 : Get Local Variable - Double */ + jvmtiError (JNICALL *GetLocalDouble) (jvmtiEnv* env, + jthread thread, + jint depth, + jint slot, + jdouble* value_ptr); + + /* 26 : Set Local Variable - Object */ + jvmtiError (JNICALL *SetLocalObject) (jvmtiEnv* env, + jthread thread, + jint depth, + jint slot, + jobject value); + + /* 27 : Set Local Variable - Int */ + jvmtiError (JNICALL *SetLocalInt) (jvmtiEnv* env, + jthread thread, + jint depth, + jint slot, + jint value); + + /* 28 : Set Local Variable - Long */ + jvmtiError (JNICALL *SetLocalLong) (jvmtiEnv* env, + jthread thread, + jint depth, + jint slot, + jlong value); + + /* 29 : Set Local Variable - Float */ + jvmtiError (JNICALL *SetLocalFloat) (jvmtiEnv* env, + jthread thread, + jint depth, + jint slot, + jfloat value); + + /* 30 : Set Local Variable - Double */ + jvmtiError (JNICALL *SetLocalDouble) (jvmtiEnv* env, + jthread thread, + jint depth, + jint slot, + jdouble value); + + /* 31 : Create Raw Monitor */ + jvmtiError (JNICALL *CreateRawMonitor) (jvmtiEnv* env, + const char* name, + jrawMonitorID* monitor_ptr); + + /* 32 : Destroy Raw Monitor */ + jvmtiError (JNICALL *DestroyRawMonitor) (jvmtiEnv* env, + jrawMonitorID monitor); + + /* 33 : Raw Monitor Enter */ + jvmtiError (JNICALL *RawMonitorEnter) (jvmtiEnv* env, + jrawMonitorID monitor); + + /* 34 : Raw Monitor Exit */ + jvmtiError (JNICALL *RawMonitorExit) (jvmtiEnv* env, + jrawMonitorID monitor); + + /* 35 : Raw Monitor Wait */ + jvmtiError (JNICALL *RawMonitorWait) (jvmtiEnv* env, + jrawMonitorID monitor, + jlong millis); + + /* 36 : Raw Monitor Notify */ + jvmtiError (JNICALL *RawMonitorNotify) (jvmtiEnv* env, + jrawMonitorID monitor); + + /* 37 : Raw Monitor Notify All */ + jvmtiError (JNICALL *RawMonitorNotifyAll) (jvmtiEnv* env, + jrawMonitorID monitor); + + /* 38 : Set Breakpoint */ + jvmtiError (JNICALL *SetBreakpoint) (jvmtiEnv* env, + jmethodID method, + jlocation location); + + /* 39 : Clear Breakpoint */ + jvmtiError (JNICALL *ClearBreakpoint) (jvmtiEnv* env, + jmethodID method, + jlocation location); + + /* 40 : Get Named Module */ + jvmtiError (JNICALL *GetNamedModule) (jvmtiEnv* env, + jobject class_loader, + const char* package_name, + jobject* module_ptr); + + /* 41 : Set Field Access Watch */ + jvmtiError (JNICALL *SetFieldAccessWatch) (jvmtiEnv* env, + jclass klass, + jfieldID field); + + /* 42 : Clear Field Access Watch */ + jvmtiError (JNICALL *ClearFieldAccessWatch) (jvmtiEnv* env, + jclass klass, + jfieldID field); + + /* 43 : Set Field Modification Watch */ + jvmtiError (JNICALL *SetFieldModificationWatch) (jvmtiEnv* env, + jclass klass, + jfieldID field); + + /* 44 : Clear Field Modification Watch */ + jvmtiError (JNICALL *ClearFieldModificationWatch) (jvmtiEnv* env, + jclass klass, + jfieldID field); + + /* 45 : Is Modifiable Class */ + jvmtiError (JNICALL *IsModifiableClass) (jvmtiEnv* env, + jclass klass, + jboolean* is_modifiable_class_ptr); + + /* 46 : Allocate */ + jvmtiError (JNICALL *Allocate) (jvmtiEnv* env, + jlong size, + unsigned char** mem_ptr); + + /* 47 : Deallocate */ + jvmtiError (JNICALL *Deallocate) (jvmtiEnv* env, + unsigned char* mem); + + /* 48 : Get Class Signature */ + jvmtiError (JNICALL *GetClassSignature) (jvmtiEnv* env, + jclass klass, + char** signature_ptr, + char** generic_ptr); + + /* 49 : Get Class Status */ + jvmtiError (JNICALL *GetClassStatus) (jvmtiEnv* env, + jclass klass, + jint* status_ptr); + + /* 50 : Get Source File Name */ + jvmtiError (JNICALL *GetSourceFileName) (jvmtiEnv* env, + jclass klass, + char** source_name_ptr); + + /* 51 : Get Class Modifiers */ + jvmtiError (JNICALL *GetClassModifiers) (jvmtiEnv* env, + jclass klass, + jint* modifiers_ptr); + + /* 52 : Get Class Methods */ + jvmtiError (JNICALL *GetClassMethods) (jvmtiEnv* env, + jclass klass, + jint* method_count_ptr, + jmethodID** methods_ptr); + + /* 53 : Get Class Fields */ + jvmtiError (JNICALL *GetClassFields) (jvmtiEnv* env, + jclass klass, + jint* field_count_ptr, + jfieldID** fields_ptr); + + /* 54 : Get Implemented Interfaces */ + jvmtiError (JNICALL *GetImplementedInterfaces) (jvmtiEnv* env, + jclass klass, + jint* interface_count_ptr, + jclass** interfaces_ptr); + + /* 55 : Is Interface */ + jvmtiError (JNICALL *IsInterface) (jvmtiEnv* env, + jclass klass, + jboolean* is_interface_ptr); + + /* 56 : Is Array Class */ + jvmtiError (JNICALL *IsArrayClass) (jvmtiEnv* env, + jclass klass, + jboolean* is_array_class_ptr); + + /* 57 : Get Class Loader */ + jvmtiError (JNICALL *GetClassLoader) (jvmtiEnv* env, + jclass klass, + jobject* classloader_ptr); + + /* 58 : Get Object Hash Code */ + jvmtiError (JNICALL *GetObjectHashCode) (jvmtiEnv* env, + jobject object, + jint* hash_code_ptr); + + /* 59 : Get Object Monitor Usage */ + jvmtiError (JNICALL *GetObjectMonitorUsage) (jvmtiEnv* env, + jobject object, + jvmtiMonitorUsage* info_ptr); + + /* 60 : Get Field Name (and Signature) */ + jvmtiError (JNICALL *GetFieldName) (jvmtiEnv* env, + jclass klass, + jfieldID field, + char** name_ptr, + char** signature_ptr, + char** generic_ptr); + + /* 61 : Get Field Declaring Class */ + jvmtiError (JNICALL *GetFieldDeclaringClass) (jvmtiEnv* env, + jclass klass, + jfieldID field, + jclass* declaring_class_ptr); + + /* 62 : Get Field Modifiers */ + jvmtiError (JNICALL *GetFieldModifiers) (jvmtiEnv* env, + jclass klass, + jfieldID field, + jint* modifiers_ptr); + + /* 63 : Is Field Synthetic */ + jvmtiError (JNICALL *IsFieldSynthetic) (jvmtiEnv* env, + jclass klass, + jfieldID field, + jboolean* is_synthetic_ptr); + + /* 64 : Get Method Name (and Signature) */ + jvmtiError (JNICALL *GetMethodName) (jvmtiEnv* env, + jmethodID method, + char** name_ptr, + char** signature_ptr, + char** generic_ptr); + + /* 65 : Get Method Declaring Class */ + jvmtiError (JNICALL *GetMethodDeclaringClass) (jvmtiEnv* env, + jmethodID method, + jclass* declaring_class_ptr); + + /* 66 : Get Method Modifiers */ + jvmtiError (JNICALL *GetMethodModifiers) (jvmtiEnv* env, + jmethodID method, + jint* modifiers_ptr); + + /* 67 : RESERVED */ + void *reserved67; + + /* 68 : Get Max Locals */ + jvmtiError (JNICALL *GetMaxLocals) (jvmtiEnv* env, + jmethodID method, + jint* max_ptr); + + /* 69 : Get Arguments Size */ + jvmtiError (JNICALL *GetArgumentsSize) (jvmtiEnv* env, + jmethodID method, + jint* size_ptr); + + /* 70 : Get Line Number Table */ + jvmtiError (JNICALL *GetLineNumberTable) (jvmtiEnv* env, + jmethodID method, + jint* entry_count_ptr, + jvmtiLineNumberEntry** table_ptr); + + /* 71 : Get Method Location */ + jvmtiError (JNICALL *GetMethodLocation) (jvmtiEnv* env, + jmethodID method, + jlocation* start_location_ptr, + jlocation* end_location_ptr); + + /* 72 : Get Local Variable Table */ + jvmtiError (JNICALL *GetLocalVariableTable) (jvmtiEnv* env, + jmethodID method, + jint* entry_count_ptr, + jvmtiLocalVariableEntry** table_ptr); + + /* 73 : Set Native Method Prefix */ + jvmtiError (JNICALL *SetNativeMethodPrefix) (jvmtiEnv* env, + const char* prefix); + + /* 74 : Set Native Method Prefixes */ + jvmtiError (JNICALL *SetNativeMethodPrefixes) (jvmtiEnv* env, + jint prefix_count, + char** prefixes); + + /* 75 : Get Bytecodes */ + jvmtiError (JNICALL *GetBytecodes) (jvmtiEnv* env, + jmethodID method, + jint* bytecode_count_ptr, + unsigned char** bytecodes_ptr); + + /* 76 : Is Method Native */ + jvmtiError (JNICALL *IsMethodNative) (jvmtiEnv* env, + jmethodID method, + jboolean* is_native_ptr); + + /* 77 : Is Method Synthetic */ + jvmtiError (JNICALL *IsMethodSynthetic) (jvmtiEnv* env, + jmethodID method, + jboolean* is_synthetic_ptr); + + /* 78 : Get Loaded Classes */ + jvmtiError (JNICALL *GetLoadedClasses) (jvmtiEnv* env, + jint* class_count_ptr, + jclass** classes_ptr); + + /* 79 : Get Classloader Classes */ + jvmtiError (JNICALL *GetClassLoaderClasses) (jvmtiEnv* env, + jobject initiating_loader, + jint* class_count_ptr, + jclass** classes_ptr); + + /* 80 : Pop Frame */ + jvmtiError (JNICALL *PopFrame) (jvmtiEnv* env, + jthread thread); + + /* 81 : Force Early Return - Object */ + jvmtiError (JNICALL *ForceEarlyReturnObject) (jvmtiEnv* env, + jthread thread, + jobject value); + + /* 82 : Force Early Return - Int */ + jvmtiError (JNICALL *ForceEarlyReturnInt) (jvmtiEnv* env, + jthread thread, + jint value); + + /* 83 : Force Early Return - Long */ + jvmtiError (JNICALL *ForceEarlyReturnLong) (jvmtiEnv* env, + jthread thread, + jlong value); + + /* 84 : Force Early Return - Float */ + jvmtiError (JNICALL *ForceEarlyReturnFloat) (jvmtiEnv* env, + jthread thread, + jfloat value); + + /* 85 : Force Early Return - Double */ + jvmtiError (JNICALL *ForceEarlyReturnDouble) (jvmtiEnv* env, + jthread thread, + jdouble value); + + /* 86 : Force Early Return - Void */ + jvmtiError (JNICALL *ForceEarlyReturnVoid) (jvmtiEnv* env, + jthread thread); + + /* 87 : Redefine Classes */ + jvmtiError (JNICALL *RedefineClasses) (jvmtiEnv* env, + jint class_count, + const jvmtiClassDefinition* class_definitions); + + /* 88 : Get Version Number */ + jvmtiError (JNICALL *GetVersionNumber) (jvmtiEnv* env, + jint* version_ptr); + + /* 89 : Get Capabilities */ + jvmtiError (JNICALL *GetCapabilities) (jvmtiEnv* env, + jvmtiCapabilities* capabilities_ptr); + + /* 90 : Get Source Debug Extension */ + jvmtiError (JNICALL *GetSourceDebugExtension) (jvmtiEnv* env, + jclass klass, + char** source_debug_extension_ptr); + + /* 91 : Is Method Obsolete */ + jvmtiError (JNICALL *IsMethodObsolete) (jvmtiEnv* env, + jmethodID method, + jboolean* is_obsolete_ptr); + + /* 92 : Suspend Thread List */ + jvmtiError (JNICALL *SuspendThreadList) (jvmtiEnv* env, + jint request_count, + const jthread* request_list, + jvmtiError* results); + + /* 93 : Resume Thread List */ + jvmtiError (JNICALL *ResumeThreadList) (jvmtiEnv* env, + jint request_count, + const jthread* request_list, + jvmtiError* results); + + /* 94 : Add Module Reads */ + jvmtiError (JNICALL *AddModuleReads) (jvmtiEnv* env, + jobject module, + jobject to_module); + + /* 95 : Add Module Exports */ + jvmtiError (JNICALL *AddModuleExports) (jvmtiEnv* env, + jobject module, + const char* pkg_name, + jobject to_module); + + /* 96 : Add Module Opens */ + jvmtiError (JNICALL *AddModuleOpens) (jvmtiEnv* env, + jobject module, + const char* pkg_name, + jobject to_module); + + /* 97 : Add Module Uses */ + jvmtiError (JNICALL *AddModuleUses) (jvmtiEnv* env, + jobject module, + jclass service); + + /* 98 : Add Module Provides */ + jvmtiError (JNICALL *AddModuleProvides) (jvmtiEnv* env, + jobject module, + jclass service, + jclass impl_class); + + /* 99 : Is Modifiable Module */ + jvmtiError (JNICALL *IsModifiableModule) (jvmtiEnv* env, + jobject module, + jboolean* is_modifiable_module_ptr); + + /* 100 : Get All Stack Traces */ + jvmtiError (JNICALL *GetAllStackTraces) (jvmtiEnv* env, + jint max_frame_count, + jvmtiStackInfo** stack_info_ptr, + jint* thread_count_ptr); + + /* 101 : Get Thread List Stack Traces */ + jvmtiError (JNICALL *GetThreadListStackTraces) (jvmtiEnv* env, + jint thread_count, + const jthread* thread_list, + jint max_frame_count, + jvmtiStackInfo** stack_info_ptr); + + /* 102 : Get Thread Local Storage */ + jvmtiError (JNICALL *GetThreadLocalStorage) (jvmtiEnv* env, + jthread thread, + void** data_ptr); + + /* 103 : Set Thread Local Storage */ + jvmtiError (JNICALL *SetThreadLocalStorage) (jvmtiEnv* env, + jthread thread, + const void* data); + + /* 104 : Get Stack Trace */ + jvmtiError (JNICALL *GetStackTrace) (jvmtiEnv* env, + jthread thread, + jint start_depth, + jint max_frame_count, + jvmtiFrameInfo* frame_buffer, + jint* count_ptr); + + /* 105 : RESERVED */ + void *reserved105; + + /* 106 : Get Tag */ + jvmtiError (JNICALL *GetTag) (jvmtiEnv* env, + jobject object, + jlong* tag_ptr); + + /* 107 : Set Tag */ + jvmtiError (JNICALL *SetTag) (jvmtiEnv* env, + jobject object, + jlong tag); + + /* 108 : Force Garbage Collection */ + jvmtiError (JNICALL *ForceGarbageCollection) (jvmtiEnv* env); + + /* 109 : Iterate Over Objects Reachable From Object */ + jvmtiError (JNICALL *IterateOverObjectsReachableFromObject) (jvmtiEnv* env, + jobject object, + jvmtiObjectReferenceCallback object_reference_callback, + const void* user_data); + + /* 110 : Iterate Over Reachable Objects */ + jvmtiError (JNICALL *IterateOverReachableObjects) (jvmtiEnv* env, + jvmtiHeapRootCallback heap_root_callback, + jvmtiStackReferenceCallback stack_ref_callback, + jvmtiObjectReferenceCallback object_ref_callback, + const void* user_data); + + /* 111 : Iterate Over Heap */ + jvmtiError (JNICALL *IterateOverHeap) (jvmtiEnv* env, + jvmtiHeapObjectFilter object_filter, + jvmtiHeapObjectCallback heap_object_callback, + const void* user_data); + + /* 112 : Iterate Over Instances Of Class */ + jvmtiError (JNICALL *IterateOverInstancesOfClass) (jvmtiEnv* env, + jclass klass, + jvmtiHeapObjectFilter object_filter, + jvmtiHeapObjectCallback heap_object_callback, + const void* user_data); + + /* 113 : RESERVED */ + void *reserved113; + + /* 114 : Get Objects With Tags */ + jvmtiError (JNICALL *GetObjectsWithTags) (jvmtiEnv* env, + jint tag_count, + const jlong* tags, + jint* count_ptr, + jobject** object_result_ptr, + jlong** tag_result_ptr); + + /* 115 : Follow References */ + jvmtiError (JNICALL *FollowReferences) (jvmtiEnv* env, + jint heap_filter, + jclass klass, + jobject initial_object, + const jvmtiHeapCallbacks* callbacks, + const void* user_data); + + /* 116 : Iterate Through Heap */ + jvmtiError (JNICALL *IterateThroughHeap) (jvmtiEnv* env, + jint heap_filter, + jclass klass, + const jvmtiHeapCallbacks* callbacks, + const void* user_data); + + /* 117 : RESERVED */ + void *reserved117; + + /* 118 : RESERVED */ + void *reserved118; + + /* 119 : RESERVED */ + void *reserved119; + + /* 120 : Set JNI Function Table */ + jvmtiError (JNICALL *SetJNIFunctionTable) (jvmtiEnv* env, + const jniNativeInterface* function_table); + + /* 121 : Get JNI Function Table */ + jvmtiError (JNICALL *GetJNIFunctionTable) (jvmtiEnv* env, + jniNativeInterface** function_table); + + /* 122 : Set Event Callbacks */ + jvmtiError (JNICALL *SetEventCallbacks) (jvmtiEnv* env, + const jvmtiEventCallbacks* callbacks, + jint size_of_callbacks); + + /* 123 : Generate Events */ + jvmtiError (JNICALL *GenerateEvents) (jvmtiEnv* env, + jvmtiEvent event_type); + + /* 124 : Get Extension Functions */ + jvmtiError (JNICALL *GetExtensionFunctions) (jvmtiEnv* env, + jint* extension_count_ptr, + jvmtiExtensionFunctionInfo** extensions); + + /* 125 : Get Extension Events */ + jvmtiError (JNICALL *GetExtensionEvents) (jvmtiEnv* env, + jint* extension_count_ptr, + jvmtiExtensionEventInfo** extensions); + + /* 126 : Set Extension Event Callback */ + jvmtiError (JNICALL *SetExtensionEventCallback) (jvmtiEnv* env, + jint extension_event_index, + jvmtiExtensionEvent callback); + + /* 127 : Dispose Environment */ + jvmtiError (JNICALL *DisposeEnvironment) (jvmtiEnv* env); + + /* 128 : Get Error Name */ + jvmtiError (JNICALL *GetErrorName) (jvmtiEnv* env, + jvmtiError error, + char** name_ptr); + + /* 129 : Get JLocation Format */ + jvmtiError (JNICALL *GetJLocationFormat) (jvmtiEnv* env, + jvmtiJlocationFormat* format_ptr); + + /* 130 : Get System Properties */ + jvmtiError (JNICALL *GetSystemProperties) (jvmtiEnv* env, + jint* count_ptr, + char*** property_ptr); + + /* 131 : Get System Property */ + jvmtiError (JNICALL *GetSystemProperty) (jvmtiEnv* env, + const char* property, + char** value_ptr); + + /* 132 : Set System Property */ + jvmtiError (JNICALL *SetSystemProperty) (jvmtiEnv* env, + const char* property, + const char* value_ptr); + + /* 133 : Get Phase */ + jvmtiError (JNICALL *GetPhase) (jvmtiEnv* env, + jvmtiPhase* phase_ptr); + + /* 134 : Get Current Thread CPU Timer Information */ + jvmtiError (JNICALL *GetCurrentThreadCpuTimerInfo) (jvmtiEnv* env, + jvmtiTimerInfo* info_ptr); + + /* 135 : Get Current Thread CPU Time */ + jvmtiError (JNICALL *GetCurrentThreadCpuTime) (jvmtiEnv* env, + jlong* nanos_ptr); + + /* 136 : Get Thread CPU Timer Information */ + jvmtiError (JNICALL *GetThreadCpuTimerInfo) (jvmtiEnv* env, + jvmtiTimerInfo* info_ptr); + + /* 137 : Get Thread CPU Time */ + jvmtiError (JNICALL *GetThreadCpuTime) (jvmtiEnv* env, + jthread thread, + jlong* nanos_ptr); + + /* 138 : Get Timer Information */ + jvmtiError (JNICALL *GetTimerInfo) (jvmtiEnv* env, + jvmtiTimerInfo* info_ptr); + + /* 139 : Get Time */ + jvmtiError (JNICALL *GetTime) (jvmtiEnv* env, + jlong* nanos_ptr); + + /* 140 : Get Potential Capabilities */ + jvmtiError (JNICALL *GetPotentialCapabilities) (jvmtiEnv* env, + jvmtiCapabilities* capabilities_ptr); + + /* 141 : RESERVED */ + void *reserved141; + + /* 142 : Add Capabilities */ + jvmtiError (JNICALL *AddCapabilities) (jvmtiEnv* env, + const jvmtiCapabilities* capabilities_ptr); + + /* 143 : Relinquish Capabilities */ + jvmtiError (JNICALL *RelinquishCapabilities) (jvmtiEnv* env, + const jvmtiCapabilities* capabilities_ptr); + + /* 144 : Get Available Processors */ + jvmtiError (JNICALL *GetAvailableProcessors) (jvmtiEnv* env, + jint* processor_count_ptr); + + /* 145 : Get Class Version Numbers */ + jvmtiError (JNICALL *GetClassVersionNumbers) (jvmtiEnv* env, + jclass klass, + jint* minor_version_ptr, + jint* major_version_ptr); + + /* 146 : Get Constant Pool */ + jvmtiError (JNICALL *GetConstantPool) (jvmtiEnv* env, + jclass klass, + jint* constant_pool_count_ptr, + jint* constant_pool_byte_count_ptr, + unsigned char** constant_pool_bytes_ptr); + + /* 147 : Get Environment Local Storage */ + jvmtiError (JNICALL *GetEnvironmentLocalStorage) (jvmtiEnv* env, + void** data_ptr); + + /* 148 : Set Environment Local Storage */ + jvmtiError (JNICALL *SetEnvironmentLocalStorage) (jvmtiEnv* env, + const void* data); + + /* 149 : Add To Bootstrap Class Loader Search */ + jvmtiError (JNICALL *AddToBootstrapClassLoaderSearch) (jvmtiEnv* env, + const char* segment); + + /* 150 : Set Verbose Flag */ + jvmtiError (JNICALL *SetVerboseFlag) (jvmtiEnv* env, + jvmtiVerboseFlag flag, + jboolean value); + + /* 151 : Add To System Class Loader Search */ + jvmtiError (JNICALL *AddToSystemClassLoaderSearch) (jvmtiEnv* env, + const char* segment); + + /* 152 : Retransform Classes */ + jvmtiError (JNICALL *RetransformClasses) (jvmtiEnv* env, + jint class_count, + const jclass* classes); + + /* 153 : Get Owned Monitor Stack Depth Info */ + jvmtiError (JNICALL *GetOwnedMonitorStackDepthInfo) (jvmtiEnv* env, + jthread thread, + jint* monitor_info_count_ptr, + jvmtiMonitorStackDepthInfo** monitor_info_ptr); + + /* 154 : Get Object Size */ + jvmtiError (JNICALL *GetObjectSize) (jvmtiEnv* env, + jobject object, + jlong* size_ptr); + + /* 155 : Get Local Instance */ + jvmtiError (JNICALL *GetLocalInstance) (jvmtiEnv* env, + jthread thread, + jint depth, + jobject* value_ptr); + + /* 156 : Set Heap Sampling Interval */ + jvmtiError (JNICALL *SetHeapSamplingInterval) (jvmtiEnv* env, + jint sampling_interval); + +} jvmtiInterface_1; + +struct _jvmtiEnv { + const struct jvmtiInterface_1_ *functions; +#ifdef __cplusplus + + + jvmtiError Allocate(jlong size, + unsigned char** mem_ptr) { + return functions->Allocate(this, size, mem_ptr); + } + + jvmtiError Deallocate(unsigned char* mem) { + return functions->Deallocate(this, mem); + } + + jvmtiError GetThreadState(jthread thread, + jint* thread_state_ptr) { + return functions->GetThreadState(this, thread, thread_state_ptr); + } + + jvmtiError GetCurrentThread(jthread* thread_ptr) { + return functions->GetCurrentThread(this, thread_ptr); + } + + jvmtiError GetAllThreads(jint* threads_count_ptr, + jthread** threads_ptr) { + return functions->GetAllThreads(this, threads_count_ptr, threads_ptr); + } + + jvmtiError SuspendThread(jthread thread) { + return functions->SuspendThread(this, thread); + } + + jvmtiError SuspendThreadList(jint request_count, + const jthread* request_list, + jvmtiError* results) { + return functions->SuspendThreadList(this, request_count, request_list, results); + } + + jvmtiError ResumeThread(jthread thread) { + return functions->ResumeThread(this, thread); + } + + jvmtiError ResumeThreadList(jint request_count, + const jthread* request_list, + jvmtiError* results) { + return functions->ResumeThreadList(this, request_count, request_list, results); + } + + jvmtiError StopThread(jthread thread, + jobject exception) { + return functions->StopThread(this, thread, exception); + } + + jvmtiError InterruptThread(jthread thread) { + return functions->InterruptThread(this, thread); + } + + jvmtiError GetThreadInfo(jthread thread, + jvmtiThreadInfo* info_ptr) { + return functions->GetThreadInfo(this, thread, info_ptr); + } + + jvmtiError GetOwnedMonitorInfo(jthread thread, + jint* owned_monitor_count_ptr, + jobject** owned_monitors_ptr) { + return functions->GetOwnedMonitorInfo(this, thread, owned_monitor_count_ptr, owned_monitors_ptr); + } + + jvmtiError GetOwnedMonitorStackDepthInfo(jthread thread, + jint* monitor_info_count_ptr, + jvmtiMonitorStackDepthInfo** monitor_info_ptr) { + return functions->GetOwnedMonitorStackDepthInfo(this, thread, monitor_info_count_ptr, monitor_info_ptr); + } + + jvmtiError GetCurrentContendedMonitor(jthread thread, + jobject* monitor_ptr) { + return functions->GetCurrentContendedMonitor(this, thread, monitor_ptr); + } + + jvmtiError RunAgentThread(jthread thread, + jvmtiStartFunction proc, + const void* arg, + jint priority) { + return functions->RunAgentThread(this, thread, proc, arg, priority); + } + + jvmtiError SetThreadLocalStorage(jthread thread, + const void* data) { + return functions->SetThreadLocalStorage(this, thread, data); + } + + jvmtiError GetThreadLocalStorage(jthread thread, + void** data_ptr) { + return functions->GetThreadLocalStorage(this, thread, data_ptr); + } + + jvmtiError GetTopThreadGroups(jint* group_count_ptr, + jthreadGroup** groups_ptr) { + return functions->GetTopThreadGroups(this, group_count_ptr, groups_ptr); + } + + jvmtiError GetThreadGroupInfo(jthreadGroup group, + jvmtiThreadGroupInfo* info_ptr) { + return functions->GetThreadGroupInfo(this, group, info_ptr); + } + + jvmtiError GetThreadGroupChildren(jthreadGroup group, + jint* thread_count_ptr, + jthread** threads_ptr, + jint* group_count_ptr, + jthreadGroup** groups_ptr) { + return functions->GetThreadGroupChildren(this, group, thread_count_ptr, threads_ptr, group_count_ptr, groups_ptr); + } + + jvmtiError GetStackTrace(jthread thread, + jint start_depth, + jint max_frame_count, + jvmtiFrameInfo* frame_buffer, + jint* count_ptr) { + return functions->GetStackTrace(this, thread, start_depth, max_frame_count, frame_buffer, count_ptr); + } + + jvmtiError GetAllStackTraces(jint max_frame_count, + jvmtiStackInfo** stack_info_ptr, + jint* thread_count_ptr) { + return functions->GetAllStackTraces(this, max_frame_count, stack_info_ptr, thread_count_ptr); + } + + jvmtiError GetThreadListStackTraces(jint thread_count, + const jthread* thread_list, + jint max_frame_count, + jvmtiStackInfo** stack_info_ptr) { + return functions->GetThreadListStackTraces(this, thread_count, thread_list, max_frame_count, stack_info_ptr); + } + + jvmtiError GetFrameCount(jthread thread, + jint* count_ptr) { + return functions->GetFrameCount(this, thread, count_ptr); + } + + jvmtiError PopFrame(jthread thread) { + return functions->PopFrame(this, thread); + } + + jvmtiError GetFrameLocation(jthread thread, + jint depth, + jmethodID* method_ptr, + jlocation* location_ptr) { + return functions->GetFrameLocation(this, thread, depth, method_ptr, location_ptr); + } + + jvmtiError NotifyFramePop(jthread thread, + jint depth) { + return functions->NotifyFramePop(this, thread, depth); + } + + jvmtiError ForceEarlyReturnObject(jthread thread, + jobject value) { + return functions->ForceEarlyReturnObject(this, thread, value); + } + + jvmtiError ForceEarlyReturnInt(jthread thread, + jint value) { + return functions->ForceEarlyReturnInt(this, thread, value); + } + + jvmtiError ForceEarlyReturnLong(jthread thread, + jlong value) { + return functions->ForceEarlyReturnLong(this, thread, value); + } + + jvmtiError ForceEarlyReturnFloat(jthread thread, + jfloat value) { + return functions->ForceEarlyReturnFloat(this, thread, value); + } + + jvmtiError ForceEarlyReturnDouble(jthread thread, + jdouble value) { + return functions->ForceEarlyReturnDouble(this, thread, value); + } + + jvmtiError ForceEarlyReturnVoid(jthread thread) { + return functions->ForceEarlyReturnVoid(this, thread); + } + + jvmtiError FollowReferences(jint heap_filter, + jclass klass, + jobject initial_object, + const jvmtiHeapCallbacks* callbacks, + const void* user_data) { + return functions->FollowReferences(this, heap_filter, klass, initial_object, callbacks, user_data); + } + + jvmtiError IterateThroughHeap(jint heap_filter, + jclass klass, + const jvmtiHeapCallbacks* callbacks, + const void* user_data) { + return functions->IterateThroughHeap(this, heap_filter, klass, callbacks, user_data); + } + + jvmtiError GetTag(jobject object, + jlong* tag_ptr) { + return functions->GetTag(this, object, tag_ptr); + } + + jvmtiError SetTag(jobject object, + jlong tag) { + return functions->SetTag(this, object, tag); + } + + jvmtiError GetObjectsWithTags(jint tag_count, + const jlong* tags, + jint* count_ptr, + jobject** object_result_ptr, + jlong** tag_result_ptr) { + return functions->GetObjectsWithTags(this, tag_count, tags, count_ptr, object_result_ptr, tag_result_ptr); + } + + jvmtiError ForceGarbageCollection() { + return functions->ForceGarbageCollection(this); + } + + jvmtiError IterateOverObjectsReachableFromObject(jobject object, + jvmtiObjectReferenceCallback object_reference_callback, + const void* user_data) { + return functions->IterateOverObjectsReachableFromObject(this, object, object_reference_callback, user_data); + } + + jvmtiError IterateOverReachableObjects(jvmtiHeapRootCallback heap_root_callback, + jvmtiStackReferenceCallback stack_ref_callback, + jvmtiObjectReferenceCallback object_ref_callback, + const void* user_data) { + return functions->IterateOverReachableObjects(this, heap_root_callback, stack_ref_callback, object_ref_callback, user_data); + } + + jvmtiError IterateOverHeap(jvmtiHeapObjectFilter object_filter, + jvmtiHeapObjectCallback heap_object_callback, + const void* user_data) { + return functions->IterateOverHeap(this, object_filter, heap_object_callback, user_data); + } + + jvmtiError IterateOverInstancesOfClass(jclass klass, + jvmtiHeapObjectFilter object_filter, + jvmtiHeapObjectCallback heap_object_callback, + const void* user_data) { + return functions->IterateOverInstancesOfClass(this, klass, object_filter, heap_object_callback, user_data); + } + + jvmtiError GetLocalObject(jthread thread, + jint depth, + jint slot, + jobject* value_ptr) { + return functions->GetLocalObject(this, thread, depth, slot, value_ptr); + } + + jvmtiError GetLocalInstance(jthread thread, + jint depth, + jobject* value_ptr) { + return functions->GetLocalInstance(this, thread, depth, value_ptr); + } + + jvmtiError GetLocalInt(jthread thread, + jint depth, + jint slot, + jint* value_ptr) { + return functions->GetLocalInt(this, thread, depth, slot, value_ptr); + } + + jvmtiError GetLocalLong(jthread thread, + jint depth, + jint slot, + jlong* value_ptr) { + return functions->GetLocalLong(this, thread, depth, slot, value_ptr); + } + + jvmtiError GetLocalFloat(jthread thread, + jint depth, + jint slot, + jfloat* value_ptr) { + return functions->GetLocalFloat(this, thread, depth, slot, value_ptr); + } + + jvmtiError GetLocalDouble(jthread thread, + jint depth, + jint slot, + jdouble* value_ptr) { + return functions->GetLocalDouble(this, thread, depth, slot, value_ptr); + } + + jvmtiError SetLocalObject(jthread thread, + jint depth, + jint slot, + jobject value) { + return functions->SetLocalObject(this, thread, depth, slot, value); + } + + jvmtiError SetLocalInt(jthread thread, + jint depth, + jint slot, + jint value) { + return functions->SetLocalInt(this, thread, depth, slot, value); + } + + jvmtiError SetLocalLong(jthread thread, + jint depth, + jint slot, + jlong value) { + return functions->SetLocalLong(this, thread, depth, slot, value); + } + + jvmtiError SetLocalFloat(jthread thread, + jint depth, + jint slot, + jfloat value) { + return functions->SetLocalFloat(this, thread, depth, slot, value); + } + + jvmtiError SetLocalDouble(jthread thread, + jint depth, + jint slot, + jdouble value) { + return functions->SetLocalDouble(this, thread, depth, slot, value); + } + + jvmtiError SetBreakpoint(jmethodID method, + jlocation location) { + return functions->SetBreakpoint(this, method, location); + } + + jvmtiError ClearBreakpoint(jmethodID method, + jlocation location) { + return functions->ClearBreakpoint(this, method, location); + } + + jvmtiError SetFieldAccessWatch(jclass klass, + jfieldID field) { + return functions->SetFieldAccessWatch(this, klass, field); + } + + jvmtiError ClearFieldAccessWatch(jclass klass, + jfieldID field) { + return functions->ClearFieldAccessWatch(this, klass, field); + } + + jvmtiError SetFieldModificationWatch(jclass klass, + jfieldID field) { + return functions->SetFieldModificationWatch(this, klass, field); + } + + jvmtiError ClearFieldModificationWatch(jclass klass, + jfieldID field) { + return functions->ClearFieldModificationWatch(this, klass, field); + } + + jvmtiError GetAllModules(jint* module_count_ptr, + jobject** modules_ptr) { + return functions->GetAllModules(this, module_count_ptr, modules_ptr); + } + + jvmtiError GetNamedModule(jobject class_loader, + const char* package_name, + jobject* module_ptr) { + return functions->GetNamedModule(this, class_loader, package_name, module_ptr); + } + + jvmtiError AddModuleReads(jobject module, + jobject to_module) { + return functions->AddModuleReads(this, module, to_module); + } + + jvmtiError AddModuleExports(jobject module, + const char* pkg_name, + jobject to_module) { + return functions->AddModuleExports(this, module, pkg_name, to_module); + } + + jvmtiError AddModuleOpens(jobject module, + const char* pkg_name, + jobject to_module) { + return functions->AddModuleOpens(this, module, pkg_name, to_module); + } + + jvmtiError AddModuleUses(jobject module, + jclass service) { + return functions->AddModuleUses(this, module, service); + } + + jvmtiError AddModuleProvides(jobject module, + jclass service, + jclass impl_class) { + return functions->AddModuleProvides(this, module, service, impl_class); + } + + jvmtiError IsModifiableModule(jobject module, + jboolean* is_modifiable_module_ptr) { + return functions->IsModifiableModule(this, module, is_modifiable_module_ptr); + } + + jvmtiError GetLoadedClasses(jint* class_count_ptr, + jclass** classes_ptr) { + return functions->GetLoadedClasses(this, class_count_ptr, classes_ptr); + } + + jvmtiError GetClassLoaderClasses(jobject initiating_loader, + jint* class_count_ptr, + jclass** classes_ptr) { + return functions->GetClassLoaderClasses(this, initiating_loader, class_count_ptr, classes_ptr); + } + + jvmtiError GetClassSignature(jclass klass, + char** signature_ptr, + char** generic_ptr) { + return functions->GetClassSignature(this, klass, signature_ptr, generic_ptr); + } + + jvmtiError GetClassStatus(jclass klass, + jint* status_ptr) { + return functions->GetClassStatus(this, klass, status_ptr); + } + + jvmtiError GetSourceFileName(jclass klass, + char** source_name_ptr) { + return functions->GetSourceFileName(this, klass, source_name_ptr); + } + + jvmtiError GetClassModifiers(jclass klass, + jint* modifiers_ptr) { + return functions->GetClassModifiers(this, klass, modifiers_ptr); + } + + jvmtiError GetClassMethods(jclass klass, + jint* method_count_ptr, + jmethodID** methods_ptr) { + return functions->GetClassMethods(this, klass, method_count_ptr, methods_ptr); + } + + jvmtiError GetClassFields(jclass klass, + jint* field_count_ptr, + jfieldID** fields_ptr) { + return functions->GetClassFields(this, klass, field_count_ptr, fields_ptr); + } + + jvmtiError GetImplementedInterfaces(jclass klass, + jint* interface_count_ptr, + jclass** interfaces_ptr) { + return functions->GetImplementedInterfaces(this, klass, interface_count_ptr, interfaces_ptr); + } + + jvmtiError GetClassVersionNumbers(jclass klass, + jint* minor_version_ptr, + jint* major_version_ptr) { + return functions->GetClassVersionNumbers(this, klass, minor_version_ptr, major_version_ptr); + } + + jvmtiError GetConstantPool(jclass klass, + jint* constant_pool_count_ptr, + jint* constant_pool_byte_count_ptr, + unsigned char** constant_pool_bytes_ptr) { + return functions->GetConstantPool(this, klass, constant_pool_count_ptr, constant_pool_byte_count_ptr, constant_pool_bytes_ptr); + } + + jvmtiError IsInterface(jclass klass, + jboolean* is_interface_ptr) { + return functions->IsInterface(this, klass, is_interface_ptr); + } + + jvmtiError IsArrayClass(jclass klass, + jboolean* is_array_class_ptr) { + return functions->IsArrayClass(this, klass, is_array_class_ptr); + } + + jvmtiError IsModifiableClass(jclass klass, + jboolean* is_modifiable_class_ptr) { + return functions->IsModifiableClass(this, klass, is_modifiable_class_ptr); + } + + jvmtiError GetClassLoader(jclass klass, + jobject* classloader_ptr) { + return functions->GetClassLoader(this, klass, classloader_ptr); + } + + jvmtiError GetSourceDebugExtension(jclass klass, + char** source_debug_extension_ptr) { + return functions->GetSourceDebugExtension(this, klass, source_debug_extension_ptr); + } + + jvmtiError RetransformClasses(jint class_count, + const jclass* classes) { + return functions->RetransformClasses(this, class_count, classes); + } + + jvmtiError RedefineClasses(jint class_count, + const jvmtiClassDefinition* class_definitions) { + return functions->RedefineClasses(this, class_count, class_definitions); + } + + jvmtiError GetObjectSize(jobject object, + jlong* size_ptr) { + return functions->GetObjectSize(this, object, size_ptr); + } + + jvmtiError GetObjectHashCode(jobject object, + jint* hash_code_ptr) { + return functions->GetObjectHashCode(this, object, hash_code_ptr); + } + + jvmtiError GetObjectMonitorUsage(jobject object, + jvmtiMonitorUsage* info_ptr) { + return functions->GetObjectMonitorUsage(this, object, info_ptr); + } + + jvmtiError GetFieldName(jclass klass, + jfieldID field, + char** name_ptr, + char** signature_ptr, + char** generic_ptr) { + return functions->GetFieldName(this, klass, field, name_ptr, signature_ptr, generic_ptr); + } + + jvmtiError GetFieldDeclaringClass(jclass klass, + jfieldID field, + jclass* declaring_class_ptr) { + return functions->GetFieldDeclaringClass(this, klass, field, declaring_class_ptr); + } + + jvmtiError GetFieldModifiers(jclass klass, + jfieldID field, + jint* modifiers_ptr) { + return functions->GetFieldModifiers(this, klass, field, modifiers_ptr); + } + + jvmtiError IsFieldSynthetic(jclass klass, + jfieldID field, + jboolean* is_synthetic_ptr) { + return functions->IsFieldSynthetic(this, klass, field, is_synthetic_ptr); + } + + jvmtiError GetMethodName(jmethodID method, + char** name_ptr, + char** signature_ptr, + char** generic_ptr) { + return functions->GetMethodName(this, method, name_ptr, signature_ptr, generic_ptr); + } + + jvmtiError GetMethodDeclaringClass(jmethodID method, + jclass* declaring_class_ptr) { + return functions->GetMethodDeclaringClass(this, method, declaring_class_ptr); + } + + jvmtiError GetMethodModifiers(jmethodID method, + jint* modifiers_ptr) { + return functions->GetMethodModifiers(this, method, modifiers_ptr); + } + + jvmtiError GetMaxLocals(jmethodID method, + jint* max_ptr) { + return functions->GetMaxLocals(this, method, max_ptr); + } + + jvmtiError GetArgumentsSize(jmethodID method, + jint* size_ptr) { + return functions->GetArgumentsSize(this, method, size_ptr); + } + + jvmtiError GetLineNumberTable(jmethodID method, + jint* entry_count_ptr, + jvmtiLineNumberEntry** table_ptr) { + return functions->GetLineNumberTable(this, method, entry_count_ptr, table_ptr); + } + + jvmtiError GetMethodLocation(jmethodID method, + jlocation* start_location_ptr, + jlocation* end_location_ptr) { + return functions->GetMethodLocation(this, method, start_location_ptr, end_location_ptr); + } + + jvmtiError GetLocalVariableTable(jmethodID method, + jint* entry_count_ptr, + jvmtiLocalVariableEntry** table_ptr) { + return functions->GetLocalVariableTable(this, method, entry_count_ptr, table_ptr); + } + + jvmtiError GetBytecodes(jmethodID method, + jint* bytecode_count_ptr, + unsigned char** bytecodes_ptr) { + return functions->GetBytecodes(this, method, bytecode_count_ptr, bytecodes_ptr); + } + + jvmtiError IsMethodNative(jmethodID method, + jboolean* is_native_ptr) { + return functions->IsMethodNative(this, method, is_native_ptr); + } + + jvmtiError IsMethodSynthetic(jmethodID method, + jboolean* is_synthetic_ptr) { + return functions->IsMethodSynthetic(this, method, is_synthetic_ptr); + } + + jvmtiError IsMethodObsolete(jmethodID method, + jboolean* is_obsolete_ptr) { + return functions->IsMethodObsolete(this, method, is_obsolete_ptr); + } + + jvmtiError SetNativeMethodPrefix(const char* prefix) { + return functions->SetNativeMethodPrefix(this, prefix); + } + + jvmtiError SetNativeMethodPrefixes(jint prefix_count, + char** prefixes) { + return functions->SetNativeMethodPrefixes(this, prefix_count, prefixes); + } + + jvmtiError CreateRawMonitor(const char* name, + jrawMonitorID* monitor_ptr) { + return functions->CreateRawMonitor(this, name, monitor_ptr); + } + + jvmtiError DestroyRawMonitor(jrawMonitorID monitor) { + return functions->DestroyRawMonitor(this, monitor); + } + + jvmtiError RawMonitorEnter(jrawMonitorID monitor) { + return functions->RawMonitorEnter(this, monitor); + } + + jvmtiError RawMonitorExit(jrawMonitorID monitor) { + return functions->RawMonitorExit(this, monitor); + } + + jvmtiError RawMonitorWait(jrawMonitorID monitor, + jlong millis) { + return functions->RawMonitorWait(this, monitor, millis); + } + + jvmtiError RawMonitorNotify(jrawMonitorID monitor) { + return functions->RawMonitorNotify(this, monitor); + } + + jvmtiError RawMonitorNotifyAll(jrawMonitorID monitor) { + return functions->RawMonitorNotifyAll(this, monitor); + } + + jvmtiError SetJNIFunctionTable(const jniNativeInterface* function_table) { + return functions->SetJNIFunctionTable(this, function_table); + } + + jvmtiError GetJNIFunctionTable(jniNativeInterface** function_table) { + return functions->GetJNIFunctionTable(this, function_table); + } + + jvmtiError SetEventCallbacks(const jvmtiEventCallbacks* callbacks, + jint size_of_callbacks) { + return functions->SetEventCallbacks(this, callbacks, size_of_callbacks); + } + + jvmtiError SetEventNotificationMode(jvmtiEventMode mode, + jvmtiEvent event_type, + jthread event_thread, + ...) { + return functions->SetEventNotificationMode(this, mode, event_type, event_thread); + } + + jvmtiError GenerateEvents(jvmtiEvent event_type) { + return functions->GenerateEvents(this, event_type); + } + + jvmtiError GetExtensionFunctions(jint* extension_count_ptr, + jvmtiExtensionFunctionInfo** extensions) { + return functions->GetExtensionFunctions(this, extension_count_ptr, extensions); + } + + jvmtiError GetExtensionEvents(jint* extension_count_ptr, + jvmtiExtensionEventInfo** extensions) { + return functions->GetExtensionEvents(this, extension_count_ptr, extensions); + } + + jvmtiError SetExtensionEventCallback(jint extension_event_index, + jvmtiExtensionEvent callback) { + return functions->SetExtensionEventCallback(this, extension_event_index, callback); + } + + jvmtiError GetPotentialCapabilities(jvmtiCapabilities* capabilities_ptr) { + return functions->GetPotentialCapabilities(this, capabilities_ptr); + } + + jvmtiError AddCapabilities(const jvmtiCapabilities* capabilities_ptr) { + return functions->AddCapabilities(this, capabilities_ptr); + } + + jvmtiError RelinquishCapabilities(const jvmtiCapabilities* capabilities_ptr) { + return functions->RelinquishCapabilities(this, capabilities_ptr); + } + + jvmtiError GetCapabilities(jvmtiCapabilities* capabilities_ptr) { + return functions->GetCapabilities(this, capabilities_ptr); + } + + jvmtiError GetCurrentThreadCpuTimerInfo(jvmtiTimerInfo* info_ptr) { + return functions->GetCurrentThreadCpuTimerInfo(this, info_ptr); + } + + jvmtiError GetCurrentThreadCpuTime(jlong* nanos_ptr) { + return functions->GetCurrentThreadCpuTime(this, nanos_ptr); + } + + jvmtiError GetThreadCpuTimerInfo(jvmtiTimerInfo* info_ptr) { + return functions->GetThreadCpuTimerInfo(this, info_ptr); + } + + jvmtiError GetThreadCpuTime(jthread thread, + jlong* nanos_ptr) { + return functions->GetThreadCpuTime(this, thread, nanos_ptr); + } + + jvmtiError GetTimerInfo(jvmtiTimerInfo* info_ptr) { + return functions->GetTimerInfo(this, info_ptr); + } + + jvmtiError GetTime(jlong* nanos_ptr) { + return functions->GetTime(this, nanos_ptr); + } + + jvmtiError GetAvailableProcessors(jint* processor_count_ptr) { + return functions->GetAvailableProcessors(this, processor_count_ptr); + } + + jvmtiError AddToBootstrapClassLoaderSearch(const char* segment) { + return functions->AddToBootstrapClassLoaderSearch(this, segment); + } + + jvmtiError AddToSystemClassLoaderSearch(const char* segment) { + return functions->AddToSystemClassLoaderSearch(this, segment); + } + + jvmtiError GetSystemProperties(jint* count_ptr, + char*** property_ptr) { + return functions->GetSystemProperties(this, count_ptr, property_ptr); + } + + jvmtiError GetSystemProperty(const char* property, + char** value_ptr) { + return functions->GetSystemProperty(this, property, value_ptr); + } + + jvmtiError SetSystemProperty(const char* property, + const char* value_ptr) { + return functions->SetSystemProperty(this, property, value_ptr); + } + + jvmtiError GetPhase(jvmtiPhase* phase_ptr) { + return functions->GetPhase(this, phase_ptr); + } + + jvmtiError DisposeEnvironment() { + return functions->DisposeEnvironment(this); + } + + jvmtiError SetEnvironmentLocalStorage(const void* data) { + return functions->SetEnvironmentLocalStorage(this, data); + } + + jvmtiError GetEnvironmentLocalStorage(void** data_ptr) { + return functions->GetEnvironmentLocalStorage(this, data_ptr); + } + + jvmtiError GetVersionNumber(jint* version_ptr) { + return functions->GetVersionNumber(this, version_ptr); + } + + jvmtiError GetErrorName(jvmtiError error, + char** name_ptr) { + return functions->GetErrorName(this, error, name_ptr); + } + + jvmtiError SetVerboseFlag(jvmtiVerboseFlag flag, + jboolean value) { + return functions->SetVerboseFlag(this, flag, value); + } + + jvmtiError GetJLocationFormat(jvmtiJlocationFormat* format_ptr) { + return functions->GetJLocationFormat(this, format_ptr); + } + + jvmtiError SetHeapSamplingInterval(jint sampling_interval) { + return functions->SetHeapSamplingInterval(this, sampling_interval); + } + +#endif /* __cplusplus */ +}; + + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* !_JAVA_JVMTI_H_ */ diff -Nru pycharm-2018.3.5/jre64/include/linux/jawt_md.h pycharm-2019.1/jre64/include/linux/jawt_md.h --- pycharm-2018.3.5/jre64/include/linux/jawt_md.h 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/include/linux/jawt_md.h 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,60 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#ifndef _JAVASOFT_JAWT_MD_H_ +#define _JAVASOFT_JAWT_MD_H_ + +#include +#include +#include "jawt.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * X11-specific declarations for AWT native interface. + * See notes in jawt.h for an example of use. + */ +typedef struct jawt_X11DrawingSurfaceInfo { + Drawable drawable; + Display* display; + VisualID visualID; + Colormap colormapID; + int depth; + /* + * Since 1.4 + * Returns a pixel value from a set of RGB values. + * This is useful for paletted color (256 color) modes. + */ + int (JNICALL *GetAWTColor)(JAWT_DrawingSurface* ds, + int r, int g, int b); +} JAWT_X11DrawingSurfaceInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* !_JAVASOFT_JAWT_MD_H_ */ diff -Nru pycharm-2018.3.5/jre64/include/linux/jni_md.h pycharm-2019.1/jre64/include/linux/jni_md.h --- pycharm-2018.3.5/jre64/include/linux/jni_md.h 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/include/linux/jni_md.h 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,56 @@ +/* + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#ifndef _JAVASOFT_JNI_MD_H_ +#define _JAVASOFT_JNI_MD_H_ + +#ifndef __has_attribute + #define __has_attribute(x) 0 +#endif +#if (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 2))) || __has_attribute(visibility) + #ifdef ARM + #define JNIEXPORT __attribute__((externally_visible,visibility("default"))) + #define JNIIMPORT __attribute__((externally_visible,visibility("default"))) + #else + #define JNIEXPORT __attribute__((visibility("default"))) + #define JNIIMPORT __attribute__((visibility("default"))) + #endif +#else + #define JNIEXPORT + #define JNIIMPORT +#endif + +#define JNICALL + +typedef int jint; +#ifdef _LP64 +typedef long jlong; +#else +typedef long long jlong; +#endif + +typedef signed char jbyte; + +#endif /* !_JAVASOFT_JNI_MD_H_ */ diff -Nru pycharm-2018.3.5/jre64/legal/java.base/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.base/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.base/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.base/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.base/aes.md pycharm-2019.1/jre64/legal/java.base/aes.md --- pycharm-2018.3.5/jre64/legal/java.base/aes.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.base/aes.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,36 @@ +## Cryptix AES v3.2.0 + +### Cryptix General License +
    +
    +Cryptix General License
    +
    +Copyright (c) 1995-2005 The Cryptix Foundation Limited.
    +All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are
    +met:
    +
    +  1. Redistributions of source code must retain the copyright notice,
    +     this list of conditions and the following disclaimer.
    +
    +  2. Redistributions in binary form must reproduce the above copyright
    +     notice, this list of conditions and the following disclaimer in
    +     the documentation and/or other materials provided with the
    +     distribution.
    +
    +THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND
    +CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
    +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    +IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BE
    +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
    +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
    +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.base/asm.md pycharm-2019.1/jre64/legal/java.base/asm.md --- pycharm-2018.3.5/jre64/legal/java.base/asm.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.base/asm.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,36 @@ +## ASM Bytecode Manipulation Framework v6.0 + +### ASM License +
    +
    +Copyright (c) 2000-2011 France Télécom
    +All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions
    +are met:
    +
    +1. Redistributions of source code must retain the above copyright
    +   notice, this list of conditions and the following disclaimer.
    +
    +2. Redistributions in binary form must reproduce the above copyright
    +   notice, this list of conditions and the following disclaimer in the
    +   documentation and/or other materials provided with the distribution.
    +
    +3. Neither the name of the copyright holders nor the names of its
    +   contributors may be used to endorse or promote products derived from
    +   this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
    +THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.base/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.base/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.base/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.base/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.base/cldr.md pycharm-2019.1/jre64/legal/java.base/cldr.md --- pycharm-2018.3.5/jre64/legal/java.base/cldr.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.base/cldr.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,66 @@ +## Unicode Common Local Data Repository (CLDR) v33 + +### CLDR License + +``` + +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE +Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +Unicode Data Files do not include PDF online code charts under the +directory http://www.unicode.org/Public/. + +Software includes any source code published in the Unicode Standard +or under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2018 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +``` diff -Nru pycharm-2018.3.5/jre64/legal/java.base/c-libutl.md pycharm-2019.1/jre64/legal/java.base/c-libutl.md --- pycharm-2018.3.5/jre64/legal/java.base/c-libutl.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.base/c-libutl.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,35 @@ +## c-libutl 20160225 + +### c-libutl License +``` + +This software is distributed under the terms of the BSD license. + +== BSD LICENSE =============================================================== + + (C) 2009 by Remo Dentato (rdentato@gmail.com) + + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +http://opensource.org/licenses/bsd-license.php + +``` diff -Nru pycharm-2018.3.5/jre64/legal/java.base/icu.md pycharm-2019.1/jre64/legal/java.base/icu.md --- pycharm-2018.3.5/jre64/legal/java.base/icu.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.base/icu.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,66 @@ +## International Components for Unicode (ICU4J) v60.2 + +### ICU4J License + +``` + +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE +Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +Unicode Data Files do not include PDF online code charts under the +directory http://www.unicode.org/Public/. + +Software includes any source code published in the Unicode Standard +or under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2018 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +``` diff -Nru pycharm-2018.3.5/jre64/legal/java.base/LICENSE pycharm-2019.1/jre64/legal/java.base/LICENSE --- pycharm-2018.3.5/jre64/legal/java.base/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.base/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.base/public_suffix.md pycharm-2019.1/jre64/legal/java.base/public_suffix.md --- pycharm-2018.3.5/jre64/legal/java.base/public_suffix.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.base/public_suffix.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,399 @@ +## Mozilla Public Suffix List + +### Public Suffix Notice +``` +You are receiving a copy of the Mozilla Public Suffix List in the following +file: /lib/security/public_suffix_list.dat. The terms of the +Oracle license do NOT apply to this file; it is licensed under the +Mozilla Public License 2.0, separately from the Oracle programs you receive. +If you do not wish to use the Public Suffix List, you may remove the +/lib/security/public_suffix_list.dat file. + +The Source Code of this file is available under the +Mozilla Public License, v. 2.0 and is located at +https://raw.githubusercontent.com/publicsuffix/list/2225db8d9f4a2a27ec697c883360632fa0c16261/public_suffix_list.dat. +If a copy of the MPL was not distributed with this file, you can obtain one +at https://mozilla.org/MPL/2.0/. + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the License. +``` + +### MPL v2.0 +``` +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at https://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +``` diff -Nru pycharm-2018.3.5/jre64/legal/java.base/unicode.md pycharm-2019.1/jre64/legal/java.base/unicode.md --- pycharm-2018.3.5/jre64/legal/java.base/unicode.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.base/unicode.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,66 @@ +## The Unicode Standard, Unicode Character Database, Version 10.0.0 + +### Unicode Character Database + +``` + +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE +Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +Unicode Data Files do not include PDF online code charts under the +directory http://www.unicode.org/Public/. + +Software includes any source code published in the Unicode Standard +or under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2018 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +``` diff -Nru pycharm-2018.3.5/jre64/legal/java.compiler/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.compiler/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.compiler/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.compiler/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.compiler/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.compiler/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.compiler/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.compiler/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.compiler/LICENSE pycharm-2019.1/jre64/legal/java.compiler/LICENSE --- pycharm-2018.3.5/jre64/legal/java.compiler/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.compiler/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.datatransfer/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.datatransfer/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.datatransfer/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.datatransfer/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.datatransfer/LICENSE pycharm-2019.1/jre64/legal/java.datatransfer/LICENSE --- pycharm-2018.3.5/jre64/legal/java.datatransfer/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.datatransfer/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.desktop/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.desktop/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.desktop/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.desktop/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/colorimaging.md pycharm-2019.1/jre64/legal/java.desktop/colorimaging.md --- pycharm-2018.3.5/jre64/legal/java.desktop/colorimaging.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/colorimaging.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,7 @@ +## Eastman Kodak Company: Portions of color management and imaging software + +### Eastman Kodak Notice +
    +Portions Copyright Eastman Kodak Company 1991-2003
    +
    + diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/giflib.md pycharm-2019.1/jre64/legal/java.desktop/giflib.md --- pycharm-2018.3.5/jre64/legal/java.desktop/giflib.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/giflib.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,26 @@ +## GIFLIB v5.1.4 + +### GIFLIB License +
    +
    +The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/harfbuzz.md pycharm-2019.1/jre64/legal/java.desktop/harfbuzz.md --- pycharm-2018.3.5/jre64/legal/java.desktop/harfbuzz.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/harfbuzz.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,64 @@ +## Harfbuzz v1.8.2 + +### Harfbuzz License + +http://cgit.freedesktop.org/harfbuzz/tree/COPYING + +
    +
    +HarfBuzz is licensed under the so-called "Old MIT" license. Details follow.
    +For parts of HarfBuzz that are licensed under different licenses see individual
    +files names COPYING in subdirectories where applicable.
    +
    +Copyright © 2010,2011,2012  Google, Inc.
    +Copyright © 2012  Mozilla Foundation
    +Copyright © 2011  Codethink Limited
    +Copyright © 2008,2010  Nokia Corporation and/or its subsidiary(-ies)
    +Copyright © 2009  Keith Stribley
    +Copyright © 2009  Martin Hosken and SIL International
    +Copyright © 2007  Chris Wilson
    +Copyright © 2006  Behdad Esfahbod
    +Copyright © 2005  David Turner
    +Copyright © 2004,2007,2008,2009,2010  Red Hat, Inc.
    +Copyright © 1998-2004  David Turner and Werner Lemberg
    +
    +For full copyright notices consult the individual files in the package.
    +
    +
    +Permission is hereby granted, without written agreement and without
    +license or royalty fees, to use, copy, modify, and distribute this
    +software and its documentation for any purpose, provided that the
    +above copyright notice and the following two paragraphs appear in
    +all copies of this software.
    +
    +IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
    +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
    +ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
    +IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
    +DAMAGE.
    +
    +THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
    +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    +FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
    +ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
    +PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
    +
    +All source code, except for one section, is licensed as above. The one
    +exception is licensed with a slightly different MIT variant:
    +The contents of this directory are licensed under the following terms:
    +
    +Copyright (C) 2012 Grigori Goronzy 
    +
    +Permission to use, copy, modify, and/or distribute this software for any
    +purpose with or without fee is hereby granted, provided that the above
    +copyright notice and this permission notice appear in all copies.
    +
    +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/jpeg.md pycharm-2019.1/jre64/legal/java.desktop/jpeg.md --- pycharm-2018.3.5/jre64/legal/java.desktop/jpeg.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/jpeg.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,83 @@ +## Independent JPEG Group: JPEG release 6b + +### JPEG License +
    +
    +Must reproduce following license in documentation and/or other materials
    +provided with distribution:
    +
    +The authors make NO WARRANTY or representation, either express or implied,
    +with respect to this software, its quality, accuracy, merchantability, or
    +fitness for a particular purpose.  This software is provided "AS IS",
    +and you, its user, assume the entire risk as to its quality and accuracy.
    +
    +This software is copyright (C) 1991-1998, Thomas G. Lane.
    +All Rights Reserved except as specified below.
    +
    +Permission is hereby granted to use, copy, modify, and distribute
    +this software (or portions thereof) for any purpose, without fee,
    +subject to these conditions:
    +
    +(1) If any part of the source code for this software is distributed,
    +then this README file must be included, with this copyright and no-warranty
    +notice unaltered; and any additions, deletions, or changes to the original
    +files must be clearly indicated in accompanying documentation.
    +
    +(2) If only executable code is distributed, then the accompanying documentation
    +must state that "this software is based in part on the work of the
    +Independent JPEG Group".
    +
    +(3) Permission for use of this software is granted only if the user accepts
    +full responsibility for any undesirable consequences; the authors accept
    +NO LIABILITY for damages of any kind.
    +
    +These conditions apply to any software derived from or based on the IJG code,
    +not just to the unmodified library.  If you use our work, you ought to
    +acknowledge us.
    +
    +Permission is NOT granted for the use of any IJG author's name or company name
    +in advertising or publicity relating to this software or products derived
    +from it.  This software may be referred to only as "the Independent JPEG
    +Group's software".
    +
    +We specifically permit and encourage the use of this software as the basis
    +of commercial products, provided that all warranty or liability claims are
    +assumed by the product vendor.
    +
    +
    +ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
    +sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
    +ansi2knr.c is NOT covered by the above copyright and conditions, but instead
    +by the usual distribution terms of the Free Software Foundation; principally,
    +that you must include source code if you redistribute it.
    +(See the file ansi2knr.c for full details.)  However, since ansi2knr.c is
    +not needed as part of any program generated from the IJG code, this does not
    +limit you more than the foregoing paragraphs do.
    +
    +The Unix configuration script "configure" was produced with GNU Autoconf.
    +It is copyright by the Free Software Foundation but is freely distributable.
    +The same holds for its supporting scripts (config.guess, config.sub,
    +ltconfig, ltmain.sh).  Another support script, install-sh, is copyright
    +by M.I.T. but is also freely distributable.
    +
    +It appears that the arithmetic coding option of the JPEG spec is covered
    +by patents owned by IBM, AT&T, and Mitsubishi.  Hence arithmetic coding
    +cannot legally be used without obtaining one or more licenses.  For this
    +reason, support for arithmetic coding has been removed from the free
    +JPEG software. (Since arithmetic coding provides only a marginal gain
    +over the unpatented Huffman mode, it is unlikely that very many
    +implementations will support it.) So far as we are aware, there are
    +no patent restrictions on the remaining code.
    +
    +The IJG distribution formerly included code to read and write GIF files.
    +To avoid entanglement with the Unisys LZW patent, GIF reading support
    +has been removed altogether, and the GIF writer has been simplified to
    +produce "uncompressed GIFs".  This technique does not use the LZW algorithm;
    +the resulting GIF files are larger than usual, but are readable by all
    +standard GIF decoders.
    +
    +We are required to state that "The Graphics Interchange Format(c) is
    +the Copyright property of CompuServe Incorporated.  GIF(sm) is a
    +Service Mark property of CompuServe Incorporated."
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/lcms.md pycharm-2019.1/jre64/legal/java.desktop/lcms.md --- pycharm-2018.3.5/jre64/legal/java.desktop/lcms.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/lcms.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ +## Little Color Management System (LCMS) v2.9 + +### LCMS License +
    +
    +Little Color Management System
    +Copyright (c) 1998-2011 Marti Maria Saguer
    +
    +Permission is hereby granted, free of charge, to any person obtaining
    +a copy of this software and associated documentation files (the "Software"),
    +to deal in the Software without restriction, including without limitation
    +the rights to use, copy, modify, merge, publish, distribute, sublicense,
    +and/or sell copies of the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
    +THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
    +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
    +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/libpng.md pycharm-2019.1/jre64/legal/java.desktop/libpng.md --- pycharm-2018.3.5/jre64/legal/java.desktop/libpng.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/libpng.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,112 @@ +## libpng v1.6.35 + +### libpng License +
    +
    +This copy of the libpng notices is provided for your convenience.  In case of
    +any discrepancy between this copy and the notices in the file png.h that is
    +included in the libpng distribution, the latter shall prevail.
    +
    +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
    +
    +If you modify libpng you may insert additional notices immediately following
    +this sentence.
    +
    +This code is released under the libpng license.
    +
    +libpng versions 1.0.7, July 1, 2000 through 1.6.35, September 29, 2017 are
    +Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are
    +derived from libpng-1.0.6, and are distributed according to the same
    +disclaimer and license as libpng-1.0.6 with the following individuals
    +added to the list of Contributing Authors:
    +
    +   Simon-Pierre Cadieux
    +   Eric S. Raymond
    +   Mans Rullgard
    +   Cosmin Truta
    +   Gilles Vollant
    +   James Yu
    +   Mandar Sahastrabuddhe
    +   Google Inc.
    +   Vadim Barkov
    +
    +and with the following additions to the disclaimer:
    +
    +   There is no warranty against interference with your enjoyment of the
    +   library or against infringement.  There is no warranty that our
    +   efforts or the library will fulfill any of your particular purposes
    +   or needs.  This library is provided with all faults, and the entire
    +   risk of satisfactory quality, performance, accuracy, and effort is with
    +   the user.
    +
    +Some files in the "contrib" directory and some configure-generated
    +files that are distributed with libpng have other copyright owners and
    +are released under other open source licenses.
    +
    +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
    +Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
    +libpng-0.96, and are distributed according to the same disclaimer and
    +license as libpng-0.96, with the following individuals added to the list
    +of Contributing Authors:
    +
    +   Tom Lane
    +   Glenn Randers-Pehrson
    +   Willem van Schaik
    +
    +libpng versions 0.89, June 1996, through 0.96, May 1997, are
    +Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
    +and are distributed according to the same disclaimer and license as
    +libpng-0.88, with the following individuals added to the list of
    +Contributing Authors:
    +
    +   John Bowler
    +   Kevin Bracey
    +   Sam Bushell
    +   Magnus Holmgren
    +   Greg Roelofs
    +   Tom Tanner
    +
    +Some files in the "scripts" directory have other copyright owners
    +but are released under this license.
    +
    +libpng versions 0.5, May 1995, through 0.88, January 1996, are
    +Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
    +
    +For the purposes of this copyright and license, "Contributing Authors"
    +is defined as the following set of individuals:
    +
    +   Andreas Dilger
    +   Dave Martindale
    +   Guy Eric Schalnat
    +   Paul Schmidt
    +   Tim Wegner
    +
    +The PNG Reference Library is supplied "AS IS".  The Contributing Authors
    +and Group 42, Inc. disclaim all warranties, expressed or implied,
    +including, without limitation, the warranties of merchantability and of
    +fitness for any purpose.  The Contributing Authors and Group 42, Inc.
    +assume no liability for direct, indirect, incidental, special, exemplary,
    +or consequential damages, which may result from the use of the PNG
    +Reference Library, even if advised of the possibility of such damage.
    +
    +Permission is hereby granted to use, copy, modify, and distribute this
    +source code, or portions hereof, for any purpose, without fee, subject
    +to the following restrictions:
    +
    +  1. The origin of this source code must not be misrepresented.
    +
    +  2. Altered versions must be plainly marked as such and must not
    +     be misrepresented as being the original source.
    +
    +  3. This Copyright notice may not be removed or altered from any
    +     source or altered source distribution.
    +
    +The Contributing Authors and Group 42, Inc. specifically permit, without
    +fee, and encourage the use of this source code as a component to
    +supporting the PNG file format in commercial products.  If you use this
    +source code in a product, acknowledgment is not required but would be
    +appreciated.
    +
    +END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/LICENSE pycharm-2019.1/jre64/legal/java.desktop/LICENSE --- pycharm-2018.3.5/jre64/legal/java.desktop/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/mesa3d.md pycharm-2019.1/jre64/legal/java.desktop/mesa3d.md --- pycharm-2018.3.5/jre64/legal/java.desktop/mesa3d.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/mesa3d.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,28 @@ +## Mesa 3-D Graphics Library v4.1 + +### Mesa License +
    +
    +Mesa 3-D graphics library
    +Version:  4.1
    +
    +Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a
    +copy of this software and associated documentation files (the "Software"),
    +to deal in the Software without restriction, including without limitation
    +the rights to use, copy, modify, merge, publish, distribute, sublicense,
    +and/or sell copies of the Software, and to permit persons to whom the
    +Software is furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included
    +in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
    +BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
    +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/opengl.md pycharm-2019.1/jre64/legal/java.desktop/opengl.md --- pycharm-2018.3.5/jre64/legal/java.desktop/opengl.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/opengl.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ +## Khronos Group OpenGL Headers v2.1 + +### Khronos Group License +
    +
    +Copyright (c) 2007 The Khronos Group Inc.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a
    +copy of this software and/or associated documentation files (the
    +"Materials"), to deal in the Materials without restriction, including
    +without limitation the rights to use, copy, modify, merge, publish,
    +distribute, sublicense, and/or sell copies of the Materials, and to
    +permit persons to whom the Materials are furnished to do so, subject to
    +the following conditions:
    +
    +The above copyright notice and this permission notice shall be included
    +in all copies or substantial portions of the Materials.
    +
    +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.desktop/xwindows.md pycharm-2019.1/jre64/legal/java.desktop/xwindows.md --- pycharm-2018.3.5/jre64/legal/java.desktop/xwindows.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.desktop/xwindows.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,232 @@ +## X Windows System v6.8.2 + +### X Windows System License +
    +
    +This is the copyright for the files in src/java.desktop/unix/native/libawt_xawt:
    +list.h, multiVis.h, wsutils.h, list.c, multiVis.c
    +
    +Copyright (c) 1994 Hewlett-Packard Co.
    +Copyright (c) 1996 X Consortium
    +
    +Permission is hereby granted, free of charge, to any person obtaining
    +a copy of this software and associated documentation files (the
    +"Software"), to deal in the Software without restriction, including
    +without limitation the rights to use, copy, modify, merge, publish,
    +distribute, sublicense, and sell copies of the Software, and to
    +permit persons to whom the Software is furnished to do so, subject to
    +the following conditions:
    +
    +The above copyright notice and this permission notice shall be included
    +in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
    +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    +OTHER DEALINGS IN THE SOFTWARE.
    +
    +Except as contained in this notice, the name of the X Consortium shall
    +not be used in advertising or otherwise to promote the sale, use or
    +other dealings in this Software without prior written authorization
    +from the X Consortium.
    +
    +___________________________
    +
    +
    +The files in motif/lib/Xm/util included this copyright:
    +mkdirhier.man,xmkmf.man, chownxterm.c, makeg.man, mergelib.cpp,
    + lndir.man, makestrs.man, checktree.c, lndir.c, makestrs.c
    +
    +Copyright (c) 1993, 1994 X Consortium
    +
    +Permission is hereby granted, free of charge, to any person obtaining a
    +copy of this software and associated documentation files (the "Software"),
    +to deal in the Software without restriction, including without limitation
    +the rights to use, copy, modify, merge, publish, distribute, sublicense,
    +and/or sell copies of the Software, and to permit persons to whom the
    +Software furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    +THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
    +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
    +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +Except as contained in this notice, the name of the X Consortium shall not
    +be used in advertising or otherwise to promote the sale, use or other
    +dealing in this Software without prior written authorization from the
    +X Consortium.
    +
    +_____________________________
    +
    +Xmos_r.h:
    +/*
    +Copyright (c) 1996 X Consortium
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
    +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +Except as contained in this notice, the name of the X Consortium shall not be
    +used in advertising or otherwise to promote the sale, use or other dealings
    +in this Software without prior written authorization from the X Consortium.
    +*/
    +
    +_____________________________
    +
    +Copyright notice for extutil.h:
    +Copyright 1989, 1998 The Open Group
    +
    +All Rights Reserved.
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
    +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +Except as contained in this notice, the name of The Open Group shall not be
    +used in advertising or otherwise to promote the sale, use or other dealings
    +in this Software without prior written authorization from The Open Group.
    +*
    +* Author: Jim Fulton, MIT The Open Group
    +*
    +* Xlib Extension-Writing Utilities
    +*
    +* This package contains utilities for writing the client API for various
    +* protocol extensions. THESE INTERFACES ARE NOT PART OF THE X STANDARD AND
    +* ARE SUBJECT TO CHANGE!
    +*/
    +
    +_____________________________
    +
    +Copyright notice for HPkeysym.h:
    +/*
    +
    +Copyright 1987, 1998 The Open Group
    +
    +All Rights Reserved.
    +
    +The above copyright notice and this permission notice shall be included
    +in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
    +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    +OTHER DEALINGS IN THE SOFTWARE.
    +
    +Except as contained in this notice, the name of The Open Group shall
    +not be used in advertising or otherwise to promote the sale, use or
    +other dealings in this Software without prior written authorization
    +from The Open Group.
    +
    +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
    +
    +All Rights Reserved
    +
    +Permission to use, copy, modify, and distribute this software and its
    +documentation for any purpose and without fee is hereby granted,
    +provided that the above copyright notice appear in all copies and that
    +both that copyright notice and this permission notice appear in
    +supporting documentation, and that the names of Hewlett Packard
    +or Digital not be
    +used in advertising or publicity pertaining to distribution of the
    +software without specific, written prior permission.
    +
    +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
    +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
    +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
    +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
    +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
    +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
    +SOFTWARE.
    +
    +HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD
    +TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    +PURPOSE. Hewlett-Packard shall not be liable for errors
    +contained herein or direct, indirect, special, incidental or
    +consequential damages in connection with the furnishing,
    +performance, or use of this material.
    +
    +*/
    +_____________________________________
    +
    +Copyright notice in keysym2ucs.h:
    +
    +Copyright 1987, 1994, 1998 The Open Group
    +
    +Permission to use, copy, modify, distribute, and sell this software and its
    +documentation for any purpose is hereby granted without fee, provided that
    +the above copyright notice appear in all copies and that both that
    +copyright notice and this permission notice appear in supporting
    +documentation.
    +
    +The above copyright notice and this permission notice shall be included
    +in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
    +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    +OTHER DEALINGS IN THE SOFTWARE.
    +
    +Except as contained in this notice, the name of The Open Group shall
    +not be used in advertising or otherwise to promote the sale, use or
    +other dealings in this Software without prior written authorization
    +from The Open Group.
    +
    +
    +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts
    +
    +All Rights Reserved
    +
    +Permission to use, copy, modify, and distribute this software and its
    +documentation for any purpose and without fee is hereby granted,
    +provided that the above copyright notice appear in all copies and that
    +both that copyright notice and this permission notice appear in
    +supporting documentation, and that the name of Digital not be
    +used in advertising or publicity pertaining to distribution of the
    +software without specific, written prior permission.
    +
    +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
    +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
    +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
    +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
    +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
    +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
    +SOFTWARE.
    +
    +******************************************************************/
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/javafx.base/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/javafx.base/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/javafx.base/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.base/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.base/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/javafx.base/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/javafx.base/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.base/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.base/LICENSE pycharm-2019.1/jre64/legal/javafx.base/LICENSE --- pycharm-2018.3.5/jre64/legal/javafx.base/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.base/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.controls/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/javafx.controls/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/javafx.controls/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.controls/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.controls/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/javafx.controls/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/javafx.controls/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.controls/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.controls/LICENSE pycharm-2019.1/jre64/legal/javafx.controls/LICENSE --- pycharm-2018.3.5/jre64/legal/javafx.controls/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.controls/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.fxml/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/javafx.fxml/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/javafx.fxml/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.fxml/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.fxml/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/javafx.fxml/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/javafx.fxml/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.fxml/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.fxml/LICENSE pycharm-2019.1/jre64/legal/javafx.fxml/LICENSE --- pycharm-2018.3.5/jre64/legal/javafx.fxml/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.fxml/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.graphics/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/javafx.graphics/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/javafx.graphics/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.graphics/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.graphics/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/javafx.graphics/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/javafx.graphics/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.graphics/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.graphics/jpeg_v7.md pycharm-2019.1/jre64/legal/javafx.graphics/jpeg_v7.md --- pycharm-2018.3.5/jre64/legal/javafx.graphics/jpeg_v7.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.graphics/jpeg_v7.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,48 @@ +## Independent JPEG Group (IJG) JPEG v7 + +### IJG License +
    +/*
    + * jcapimin.c
    + *
    + * Copyright (C) 1994-1998, Thomas G. Lane.
    + * This file is part of the Independent JPEG Group's software.
    + * For conditions of distribution and use, see the accompanying README file.
    + */
    +[From the README file]
    +The authors make NO WARRANTY or representation, either express or implied,
    +with respect to this software, its quality, accuracy, merchantability, or
    +fitness for a particular purpose. This software is provided "AS IS", and you,
    +its user, assume the entire risk as to its quality and accuracy.
    +
    +This software is copyright (C) 1991-2009, Thomas G. Lane, Guido Vollbeding.
    +All Rights Reserved except as specified below.
    +
    +Permission is hereby granted to use, copy, modify, and distribute this
    +software (or portions thereof) for any purpose, without fee, subject to these
    +conditions:
    +(1) If any part of the source code for this software is distributed, then this
    +README file must be included, with this copyright and no-warranty notice
    +unaltered; and any additions, deletions, or changes to the original files
    +must be clearly indicated in accompanying documentation.
    +(2) If only executable code is distributed, then the accompanying
    +documentation must state that "this software is based in part on the work of
    +the Independent JPEG Group".
    +(3) Permission for use of this software is granted only if the user accepts
    +full responsibility for any undesirable consequences; the authors accept
    +NO LIABILITY for damages of any kind.
    +
    +These conditions apply to any software derived from or based on the IJG code,
    +not just to the unmodified library. If you use our work, you ought to
    +acknowledge us.
    +
    +Permission is NOT granted for the use of any IJG author's name or company name
    +in advertising or publicity relating to this software or products derived from
    +it. This software may be referred to only as "the Independent JPEG Group's
    +software".
    +
    +We specifically permit and encourage the use of this software as the basis of
    +commercial products, provided that all warranty or liability claims are
    +assumed by the product vendor.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/javafx.graphics/LICENSE pycharm-2019.1/jre64/legal/javafx.graphics/LICENSE --- pycharm-2018.3.5/jre64/legal/javafx.graphics/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.graphics/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.media/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/javafx.media/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/javafx.media/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.media/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.media/applecoreaudio.md pycharm-2019.1/jre64/legal/javafx.media/applecoreaudio.md --- pycharm-2018.3.5/jre64/legal/javafx.media/applecoreaudio.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.media/applecoreaudio.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,53 @@ +## Apple Computer: CoreAudio Utility Classes v2.0 + +### Apple Computer CoreAudio Notice +This software is present only on Mac OS X systems. + +### Apple Computer CoreAudio License +
    +
    +File:
    +Abstract: Part of CoreAudio Utility Classes
    +Version: 1.1
    +
    +Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
    +Inc. ("Apple") in consideration of your agreement to the following
    +terms, and your use, installation, modification or redistribution of
    +this Apple software constitutes acceptance of these terms. If you do
    +not agree with these terms, please do not use, install, modify or
    +redistribute this Apple software.
    +
    +In consideration of your agreement to abide by the following terms, and
    +subject to these terms, Apple grants you a personal, non-exclusive
    +license, under Apple's copyrights in this original Apple software (the
    +"Apple Software"), to use, reproduce, modify and redistribute the Apple
    +Software, with or without modifications, in source and/or binary forms;
    +provided that if you redistribute the Apple Software in its entirety and
    +without modifications, you must retain this notice and the following
    +text and disclaimers in all such redistributions of the Apple Software.
    +Neither the name, trademarks, service marks or logos of Apple Inc. may
    +be used to endorse or promote products derived from the Apple Software
    +without specific prior written permission from Apple. Except as
    +expressly stated in this notice, no other rights or licenses, express or
    +implied, are granted by Apple herein, including but not limited to any
    +patent rights that may be infringed by your derivative works or by other
    +works in which the Apple Software may be incorporated.
    +
    +The Apple Software is provided by Apple on an "AS IS" basis. APPLE
    +MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
    +THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
    +FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
    +OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
    +
    +IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
    +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
    +MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
    +AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
    +STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
    +POSSIBILITY OF SUCH DAMAGE.
    +
    +Copyright (C) 2014 Apple Inc. All Rights Reserved.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/javafx.media/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/javafx.media/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/javafx.media/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.media/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.media/glib.md pycharm-2019.1/jre64/legal/javafx.media/glib.md --- pycharm-2018.3.5/jre64/legal/javafx.media/glib.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.media/glib.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,535 @@ +## GNU Glib v2.42.1 + +### Glib Notice +
    +You are receiving a copy of GNU Glib, Version: 2.42.1 in either source or
    +object code in the JavaFX runtime or JavaFX SDK. The terms of the
    +Oracle license do NOT apply to the GNU Glib, Version: 2.42.1; it is
    +licensed under the following license, separately from the Oracle programs
    +you receive. If you do not wish to install this library, you may delete
    +this library:
    +
    +   - On Linux systems: N/A (library is not present)
    +   - On Mac OS X systems: delete $(JAVA_HOME)/lib/libglib-lite.dylib
    +   - On Windows systems: delete $(JAVA_HOME)\bin\glib-lite.dll
    +
    +A copy of the Oracle modified GNU Glib library source code is located
    +in the following OpenJDK Mercurial repository:
    +
    +   http://hg.openjdk.java.net/openjfx/jfx/rt
    +
    +You can use Mercurial to clone the repository or you can browse the
    +source using a web browser. The root directory of the GNU Glib source
    +code is here:
    +
    +   rt/modules/javafx.media/src/main/native/gstreamer/3rd_party/glib/
    +
    + +### LGPL 2.1 +
    +                  GNU LESSER GENERAL PUBLIC LICENSE
    +                       Version 2.1, February 1999
    +
    + Copyright (C) 1991, 1999 Free Software Foundation, Inc.
    + 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    + Everyone is permitted to copy and distribute verbatim copies
    + of this license document, but changing it is not allowed.
    +
    +[This is the first released version of the Lesser GPL.  It also counts
    + as the successor of the GNU Library Public License, version 2, hence
    + the version number 2.1.]
    +
    +                            Preamble
    +
    +  The licenses for most software are designed to take away your
    +freedom to share and change it.  By contrast, the GNU General Public
    +Licenses are intended to guarantee your freedom to share and change
    +free software--to make sure the software is free for all its users.
    +
    +  This license, the Lesser General Public License, applies to some
    +specially designated software packages--typically libraries--of the
    +Free Software Foundation and other authors who decide to use it.  You
    +can use it too, but we suggest you first think carefully about whether
    +this license or the ordinary General Public License is the better
    +strategy to use in any particular case, based on the explanations below.
    +
    +  When we speak of free software, we are referring to freedom of use,
    +not price.  Our General Public Licenses are designed to make sure that
    +you have the freedom to distribute copies of free software (and charge
    +for this service if you wish); that you receive source code or can get
    +it if you want it; that you can change the software and use pieces of
    +it in new free programs; and that you are informed that you can do
    +these things.
    +
    +  To protect your rights, we need to make restrictions that forbid
    +distributors to deny you these rights or to ask you to surrender these
    +rights.  These restrictions translate to certain responsibilities for
    +you if you distribute copies of the library or if you modify it.
    +
    +  For example, if you distribute copies of the library, whether gratis
    +or for a fee, you must give the recipients all the rights that we gave
    +you.  You must make sure that they, too, receive or can get the source
    +code.  If you link other code with the library, you must provide
    +complete object files to the recipients, so that they can relink them
    +with the library after making changes to the library and recompiling
    +it.  And you must show them these terms so they know their rights.
    +
    +  We protect your rights with a two-step method: (1) we copyright the
    +library, and (2) we offer you this license, which gives you legal
    +permission to copy, distribute and/or modify the library.
    +
    +  To protect each distributor, we want to make it very clear that
    +there is no warranty for the free library.  Also, if the library is
    +modified by someone else and passed on, the recipients should know
    +that what they have is not the original version, so that the original
    +author's reputation will not be affected by problems that might be
    +introduced by others.
    +
    +  Finally, software patents pose a constant threat to the existence of
    +any free program.  We wish to make sure that a company cannot
    +effectively restrict the users of a free program by obtaining a
    +restrictive license from a patent holder.  Therefore, we insist that
    +any patent license obtained for a version of the library must be
    +consistent with the full freedom of use specified in this license.
    +
    +  Most GNU software, including some libraries, is covered by the
    +ordinary GNU General Public License.  This license, the GNU Lesser
    +General Public License, applies to certain designated libraries, and
    +is quite different from the ordinary General Public License.  We use
    +this license for certain libraries in order to permit linking those
    +libraries into non-free programs.
    +
    +  When a program is linked with a library, whether statically or using
    +a shared library, the combination of the two is legally speaking a
    +combined work, a derivative of the original library.  The ordinary
    +General Public License therefore permits such linking only if the
    +entire combination fits its criteria of freedom.  The Lesser General
    +Public License permits more lax criteria for linking other code with
    +the library.
    +
    +  We call this license the "Lesser" General Public License because it
    +does Less to protect the user's freedom than the ordinary General
    +Public License.  It also provides other free software developers Less
    +of an advantage over competing non-free programs.  These disadvantages
    +are the reason we use the ordinary General Public License for many
    +libraries.  However, the Lesser license provides advantages in certain
    +special circumstances.
    +
    +  For example, on rare occasions, there may be a special need to
    +encourage the widest possible use of a certain library, so that it becomes
    +a de-facto standard.  To achieve this, non-free programs must be
    +allowed to use the library.  A more frequent case is that a free
    +library does the same job as widely used non-free libraries.  In this
    +case, there is little to gain by limiting the free library to free
    +software only, so we use the Lesser General Public License.
    +
    +  In other cases, permission to use a particular library in non-free
    +programs enables a greater number of people to use a large body of
    +free software.  For example, permission to use the GNU C Library in
    +non-free programs enables many more people to use the whole GNU
    +operating system, as well as its variant, the GNU/Linux operating
    +system.
    +
    +  Although the Lesser General Public License is Less protective of the
    +users' freedom, it does ensure that the user of a program that is
    +linked with the Library has the freedom and the wherewithal to run
    +that program using a modified version of the Library.
    +
    +  The precise terms and conditions for copying, distribution and
    +modification follow.  Pay close attention to the difference between a
    +"work based on the library" and a "work that uses the library".  The
    +former contains code derived from the library, whereas the latter must
    +be combined with the library in order to run.
    +
    +                  GNU LESSER GENERAL PUBLIC LICENSE
    +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    +
    +  0. This License Agreement applies to any software library or other
    +program which contains a notice placed by the copyright holder or
    +other authorized party saying it may be distributed under the terms of
    +this Lesser General Public License (also called "this License").
    +Each licensee is addressed as "you".
    +
    +  A "library" means a collection of software functions and/or data
    +prepared so as to be conveniently linked with application programs
    +(which use some of those functions and data) to form executables.
    +
    +  The "Library", below, refers to any such software library or work
    +which has been distributed under these terms.  A "work based on the
    +Library" means either the Library or any derivative work under
    +copyright law: that is to say, a work containing the Library or a
    +portion of it, either verbatim or with modifications and/or translated
    +straightforwardly into another language.  (Hereinafter, translation is
    +included without limitation in the term "modification".)
    +
    +  "Source code" for a work means the preferred form of the work for
    +making modifications to it.  For a library, complete source code means
    +all the source code for all modules it contains, plus any associated
    +interface definition files, plus the scripts used to control compilation
    +and installation of the library.
    +
    +  Activities other than copying, distribution and modification are not
    +covered by this License; they are outside its scope.  The act of
    +running a program using the Library is not restricted, and output from
    +such a program is covered only if its contents constitute a work based
    +on the Library (independent of the use of the Library in a tool for
    +writing it).  Whether that is true depends on what the Library does
    +and what the program that uses the Library does.
    +
    +  1. You may copy and distribute verbatim copies of the Library's
    +complete source code as you receive it, in any medium, provided that
    +you conspicuously and appropriately publish on each copy an
    +appropriate copyright notice and disclaimer of warranty; keep intact
    +all the notices that refer to this License and to the absence of any
    +warranty; and distribute a copy of this License along with the
    +Library.
    +
    +  You may charge a fee for the physical act of transferring a copy,
    +and you may at your option offer warranty protection in exchange for a
    +fee.
    +
    +  2. You may modify your copy or copies of the Library or any portion
    +of it, thus forming a work based on the Library, and copy and
    +distribute such modifications or work under the terms of Section 1
    +above, provided that you also meet all of these conditions:
    +
    +    a) The modified work must itself be a software library.
    +
    +    b) You must cause the files modified to carry prominent notices
    +    stating that you changed the files and the date of any change.
    +
    +    c) You must cause the whole of the work to be licensed at no
    +    charge to all third parties under the terms of this License.
    +
    +    d) If a facility in the modified Library refers to a function or a
    +    table of data to be supplied by an application program that uses
    +    the facility, other than as an argument passed when the facility
    +    is invoked, then you must make a good faith effort to ensure that,
    +    in the event an application does not supply such function or
    +    table, the facility still operates, and performs whatever part of
    +    its purpose remains meaningful.
    +
    +    (For example, a function in a library to compute square roots has
    +    a purpose that is entirely well-defined independent of the
    +    application.  Therefore, Subsection 2d requires that any
    +    application-supplied function or table used by this function must
    +    be optional: if the application does not supply it, the square
    +    root function must still compute square roots.)
    +
    +These requirements apply to the modified work as a whole.  If
    +identifiable sections of that work are not derived from the Library,
    +and can be reasonably considered independent and separate works in
    +themselves, then this License, and its terms, do not apply to those
    +sections when you distribute them as separate works.  But when you
    +distribute the same sections as part of a whole which is a work based
    +on the Library, the distribution of the whole must be on the terms of
    +this License, whose permissions for other licensees extend to the
    +entire whole, and thus to each and every part regardless of who wrote
    +it.
    +
    +Thus, it is not the intent of this section to claim rights or contest
    +your rights to work written entirely by you; rather, the intent is to
    +exercise the right to control the distribution of derivative or
    +collective works based on the Library.
    +
    +In addition, mere aggregation of another work not based on the Library
    +with the Library (or with a work based on the Library) on a volume of
    +a storage or distribution medium does not bring the other work under
    +the scope of this License.
    +
    +  3. You may opt to apply the terms of the ordinary GNU General Public
    +License instead of this License to a given copy of the Library.  To do
    +this, you must alter all the notices that refer to this License, so
    +that they refer to the ordinary GNU General Public License, version 2,
    +instead of to this License.  (If a newer version than version 2 of the
    +ordinary GNU General Public License has appeared, then you can specify
    +that version instead if you wish.)  Do not make any other change in
    +these notices.
    +
    +  Once this change is made in a given copy, it is irreversible for
    +that copy, so the ordinary GNU General Public License applies to all
    +subsequent copies and derivative works made from that copy.
    +
    +  This option is useful when you wish to copy part of the code of
    +the Library into a program that is not a library.
    +
    +  4. You may copy and distribute the Library (or a portion or
    +derivative of it, under Section 2) in object code or executable form
    +under the terms of Sections 1 and 2 above provided that you accompany
    +it with the complete corresponding machine-readable source code, which
    +must be distributed under the terms of Sections 1 and 2 above on a
    +medium customarily used for software interchange.
    +
    +  If distribution of object code is made by offering access to copy
    +from a designated place, then offering equivalent access to copy the
    +source code from the same place satisfies the requirement to
    +distribute the source code, even though third parties are not
    +compelled to copy the source along with the object code.
    +
    +  5. A program that contains no derivative of any portion of the
    +Library, but is designed to work with the Library by being compiled or
    +linked with it, is called a "work that uses the Library".  Such a
    +work, in isolation, is not a derivative work of the Library, and
    +therefore falls outside the scope of this License.
    +
    +  However, linking a "work that uses the Library" with the Library
    +creates an executable that is a derivative of the Library (because it
    +contains portions of the Library), rather than a "work that uses the
    +library".  The executable is therefore covered by this License.
    +Section 6 states terms for distribution of such executables.
    +
    +  When a "work that uses the Library" uses material from a header file
    +that is part of the Library, the object code for the work may be a
    +derivative work of the Library even though the source code is not.
    +Whether this is true is especially significant if the work can be
    +linked without the Library, or if the work is itself a library.  The
    +threshold for this to be true is not precisely defined by law.
    +
    +  If such an object file uses only numerical parameters, data
    +structure layouts and accessors, and small macros and small inline
    +functions (ten lines or less in length), then the use of the object
    +file is unrestricted, regardless of whether it is legally a derivative
    +work.  (Executables containing this object code plus portions of the
    +Library will still fall under Section 6.)
    +
    +  Otherwise, if the work is a derivative of the Library, you may
    +distribute the object code for the work under the terms of Section 6.
    +Any executables containing that work also fall under Section 6,
    +whether or not they are linked directly with the Library itself.
    +
    +  6. As an exception to the Sections above, you may also combine or
    +link a "work that uses the Library" with the Library to produce a
    +work containing portions of the Library, and distribute that work
    +under terms of your choice, provided that the terms permit
    +modification of the work for the customer's own use and reverse
    +engineering for debugging such modifications.
    +
    +  You must give prominent notice with each copy of the work that the
    +Library is used in it and that the Library and its use are covered by
    +this License.  You must supply a copy of this License.  If the work
    +during execution displays copyright notices, you must include the
    +copyright notice for the Library among them, as well as a reference
    +directing the user to the copy of this License.  Also, you must do one
    +of these things:
    +
    +    a) Accompany the work with the complete corresponding
    +    machine-readable source code for the Library including whatever
    +    changes were used in the work (which must be distributed under
    +    Sections 1 and 2 above); and, if the work is an executable linked
    +    with the Library, with the complete machine-readable "work that
    +    uses the Library", as object code and/or source code, so that the
    +    user can modify the Library and then relink to produce a modified
    +    executable containing the modified Library.  (It is understood
    +    that the user who changes the contents of definitions files in the
    +    Library will not necessarily be able to recompile the application
    +    to use the modified definitions.)
    +
    +    b) Use a suitable shared library mechanism for linking with the
    +    Library.  A suitable mechanism is one that (1) uses at run time a
    +    copy of the library already present on the user's computer system,
    +    rather than copying library functions into the executable, and (2)
    +    will operate properly with a modified version of the library, if
    +    the user installs one, as long as the modified version is
    +    interface-compatible with the version that the work was made with.
    +
    +    c) Accompany the work with a written offer, valid for at
    +    least three years, to give the same user the materials
    +    specified in Subsection 6a, above, for a charge no more
    +    than the cost of performing this distribution.
    +
    +    d) If distribution of the work is made by offering access to copy
    +    from a designated place, offer equivalent access to copy the above
    +    specified materials from the same place.
    +
    +    e) Verify that the user has already received a copy of these
    +    materials or that you have already sent this user a copy.
    +
    +  For an executable, the required form of the "work that uses the
    +Library" must include any data and utility programs needed for
    +reproducing the executable from it.  However, as a special exception,
    +the materials to be distributed need not include anything that is
    +normally distributed (in either source or binary form) with the major
    +components (compiler, kernel, and so on) of the operating system on
    +which the executable runs, unless that component itself accompanies
    +the executable.
    +
    +  It may happen that this requirement contradicts the license
    +restrictions of other proprietary libraries that do not normally
    +accompany the operating system.  Such a contradiction means you cannot
    +use both them and the Library together in an executable that you
    +distribute.
    +
    +  7. You may place library facilities that are a work based on the
    +Library side-by-side in a single library together with other library
    +facilities not covered by this License, and distribute such a combined
    +library, provided that the separate distribution of the work based on
    +the Library and of the other library facilities is otherwise
    +permitted, and provided that you do these two things:
    +
    +    a) Accompany the combined library with a copy of the same work
    +    based on the Library, uncombined with any other library
    +    facilities.  This must be distributed under the terms of the
    +    Sections above.
    +
    +    b) Give prominent notice with the combined library of the fact
    +    that part of it is a work based on the Library, and explaining
    +    where to find the accompanying uncombined form of the same work.
    +
    +  8. You may not copy, modify, sublicense, link with, or distribute
    +the Library except as expressly provided under this License.  Any
    +attempt otherwise to copy, modify, sublicense, link with, or
    +distribute the Library is void, and will automatically terminate your
    +rights under this License.  However, parties who have received copies,
    +or rights, from you under this License will not have their licenses
    +terminated so long as such parties remain in full compliance.
    +
    +  9. You are not required to accept this License, since you have not
    +signed it.  However, nothing else grants you permission to modify or
    +distribute the Library or its derivative works.  These actions are
    +prohibited by law if you do not accept this License.  Therefore, by
    +modifying or distributing the Library (or any work based on the
    +Library), you indicate your acceptance of this License to do so, and
    +all its terms and conditions for copying, distributing or modifying
    +the Library or works based on it.
    +
    +  10. Each time you redistribute the Library (or any work based on the
    +Library), the recipient automatically receives a license from the
    +original licensor to copy, distribute, link with or modify the Library
    +subject to these terms and conditions.  You may not impose any further
    +restrictions on the recipients' exercise of the rights granted herein.
    +You are not responsible for enforcing compliance by third parties with
    +this License.
    +
    +  11. If, as a consequence of a court judgment or allegation of patent
    +infringement or for any other reason (not limited to patent issues),
    +conditions are imposed on you (whether by court order, agreement or
    +otherwise) that contradict the conditions of this License, they do not
    +excuse you from the conditions of this License.  If you cannot
    +distribute so as to satisfy simultaneously your obligations under this
    +License and any other pertinent obligations, then as a consequence you
    +may not distribute the Library at all.  For example, if a patent
    +license would not permit royalty-free redistribution of the Library by
    +all those who receive copies directly or indirectly through you, then
    +the only way you could satisfy both it and this License would be to
    +refrain entirely from distribution of the Library.
    +
    +If any portion of this section is held invalid or unenforceable under any
    +particular circumstance, the balance of the section is intended to apply,
    +and the section as a whole is intended to apply in other circumstances.
    +
    +It is not the purpose of this section to induce you to infringe any
    +patents or other property right claims or to contest validity of any
    +such claims; this section has the sole purpose of protecting the
    +integrity of the free software distribution system which is
    +implemented by public license practices.  Many people have made
    +generous contributions to the wide range of software distributed
    +through that system in reliance on consistent application of that
    +system; it is up to the author/donor to decide if he or she is willing
    +to distribute software through any other system and a licensee cannot
    +impose that choice.
    +
    +This section is intended to make thoroughly clear what is believed to
    +be a consequence of the rest of this License.
    +
    +  12. If the distribution and/or use of the Library is restricted in
    +certain countries either by patents or by copyrighted interfaces, the
    +original copyright holder who places the Library under this License may add
    +an explicit geographical distribution limitation excluding those countries,
    +so that distribution is permitted only in or among countries not thus
    +excluded.  In such case, this License incorporates the limitation as if
    +written in the body of this License.
    +
    +  13. The Free Software Foundation may publish revised and/or new
    +versions of the Lesser General Public License from time to time.
    +Such new versions will be similar in spirit to the present version,
    +but may differ in detail to address new problems or concerns.
    +
    +Each version is given a distinguishing version number.  If the Library
    +specifies a version number of this License which applies to it and
    +"any later version", you have the option of following the terms and
    +conditions either of that version or of any later version published by
    +the Free Software Foundation.  If the Library does not specify a
    +license version number, you may choose any version ever published by
    +the Free Software Foundation.
    +
    +  14. If you wish to incorporate parts of the Library into other free
    +programs whose distribution conditions are incompatible with these,
    +write to the author to ask for permission.  For software which is
    +copyrighted by the Free Software Foundation, write to the Free
    +Software Foundation; we sometimes make exceptions for this.  Our
    +decision will be guided by the two goals of preserving the free status
    +of all derivatives of our free software and of promoting the sharing
    +and reuse of software generally.
    +
    +                            NO WARRANTY
    +
    +  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
    +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
    +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
    +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
    +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
    +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    +PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
    +LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
    +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
    +
    +  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
    +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
    +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
    +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
    +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
    +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
    +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
    +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
    +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
    +DAMAGES.
    +
    +                     END OF TERMS AND CONDITIONS
    +
    +           How to Apply These Terms to Your New Libraries
    +
    +  If you develop a new library, and you want it to be of the greatest
    +possible use to the public, we recommend making it free software that
    +everyone can redistribute and change.  You can do so by permitting
    +redistribution under these terms (or, alternatively, under the terms of the
    +ordinary General Public License).
    +
    +  To apply these terms, attach the following notices to the library.  It is
    +safest to attach them to the start of each source file to most effectively
    +convey the exclusion of warranty; and each file should have at least the
    +"copyright" line and a pointer to where the full notice is found.
    +
    +    
    +    Copyright (C)   
    +
    +    This library is free software; you can redistribute it and/or
    +    modify it under the terms of the GNU Lesser General Public
    +    License as published by the Free Software Foundation; either
    +    version 2.1 of the License, or (at your option) any later version.
    +
    +    This library is distributed in the hope that it will be useful,
    +    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +    Lesser General Public License for more details.
    +
    +    You should have received a copy of the GNU Lesser General Public
    +    License along with this library; if not, write to the Free Software
    +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    +
    +Also add information on how to contact you by electronic and paper mail.
    +
    +You should also get your employer (if you work as a programmer) or your
    +school, if any, to sign a "copyright disclaimer" for the library, if
    +necessary.  Here is a sample; alter the names:
    +
    +  Yoyodyne, Inc., hereby disclaims all copyright interest in the
    +  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
    +
    +  , 1 April 1990
    +  Ty Coon, President of Vice
    +
    +That's all there is to it!
    +
    +
    + + diff -Nru pycharm-2018.3.5/jre64/legal/javafx.media/gstreamer.md pycharm-2019.1/jre64/legal/javafx.media/gstreamer.md --- pycharm-2018.3.5/jre64/legal/javafx.media/gstreamer.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.media/gstreamer.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,533 @@ +## GStreamer v1.4.4 + +### GStreamer Notice +
    +You are receiving a copy of GStreamer, Version: 1.4.4 in either source or
    +object code in the JavaFX runtime or JavaFX SDK. The terms of the
    +Oracle license do NOT apply to the GStreamer, Version: 1.4.4; it is
    +licensed under the following license, separately from the Oracle programs
    +you receive. If you do not wish to install this library, you may delete
    +this library:
    +
    +   - On Linux systems: delete $(JAVA_HOME)/lib/libgstreamer-lite.so
    +   - On Mac OS X systems: delete $(JAVA_HOME)/lib/libgstreamer-lite.dylib
    +   - On Windows systems: delete $(JAVA_HOME)\bin\gstreamer-lite.dll
    +
    +A copy of the Oracle modified GStreamer library source code is located
    +in the following OpenJDK Mercurial repository:
    +
    +   http://hg.openjdk.java.net/openjfx/jfx/rt
    +
    +You can use Mercurial to clone the repository or you can browse the
    +source using a web browser. The root directory of the GStreamer source
    +code is here:
    +
    +   rt/modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/
    +
    + +### LGPL 2.1 +
    +                  GNU LESSER GENERAL PUBLIC LICENSE
    +                       Version 2.1, February 1999
    +
    + Copyright (C) 1991, 1999 Free Software Foundation, Inc.
    + 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    + Everyone is permitted to copy and distribute verbatim copies
    + of this license document, but changing it is not allowed.
    +
    +[This is the first released version of the Lesser GPL.  It also counts
    + as the successor of the GNU Library Public License, version 2, hence
    + the version number 2.1.]
    +
    +                            Preamble
    +
    +  The licenses for most software are designed to take away your
    +freedom to share and change it.  By contrast, the GNU General Public
    +Licenses are intended to guarantee your freedom to share and change
    +free software--to make sure the software is free for all its users.
    +
    +  This license, the Lesser General Public License, applies to some
    +specially designated software packages--typically libraries--of the
    +Free Software Foundation and other authors who decide to use it.  You
    +can use it too, but we suggest you first think carefully about whether
    +this license or the ordinary General Public License is the better
    +strategy to use in any particular case, based on the explanations below.
    +
    +  When we speak of free software, we are referring to freedom of use,
    +not price.  Our General Public Licenses are designed to make sure that
    +you have the freedom to distribute copies of free software (and charge
    +for this service if you wish); that you receive source code or can get
    +it if you want it; that you can change the software and use pieces of
    +it in new free programs; and that you are informed that you can do
    +these things.
    +
    +  To protect your rights, we need to make restrictions that forbid
    +distributors to deny you these rights or to ask you to surrender these
    +rights.  These restrictions translate to certain responsibilities for
    +you if you distribute copies of the library or if you modify it.
    +
    +  For example, if you distribute copies of the library, whether gratis
    +or for a fee, you must give the recipients all the rights that we gave
    +you.  You must make sure that they, too, receive or can get the source
    +code.  If you link other code with the library, you must provide
    +complete object files to the recipients, so that they can relink them
    +with the library after making changes to the library and recompiling
    +it.  And you must show them these terms so they know their rights.
    +
    +  We protect your rights with a two-step method: (1) we copyright the
    +library, and (2) we offer you this license, which gives you legal
    +permission to copy, distribute and/or modify the library.
    +
    +  To protect each distributor, we want to make it very clear that
    +there is no warranty for the free library.  Also, if the library is
    +modified by someone else and passed on, the recipients should know
    +that what they have is not the original version, so that the original
    +author's reputation will not be affected by problems that might be
    +introduced by others.
    +
    +  Finally, software patents pose a constant threat to the existence of
    +any free program.  We wish to make sure that a company cannot
    +effectively restrict the users of a free program by obtaining a
    +restrictive license from a patent holder.  Therefore, we insist that
    +any patent license obtained for a version of the library must be
    +consistent with the full freedom of use specified in this license.
    +
    +  Most GNU software, including some libraries, is covered by the
    +ordinary GNU General Public License.  This license, the GNU Lesser
    +General Public License, applies to certain designated libraries, and
    +is quite different from the ordinary General Public License.  We use
    +this license for certain libraries in order to permit linking those
    +libraries into non-free programs.
    +
    +  When a program is linked with a library, whether statically or using
    +a shared library, the combination of the two is legally speaking a
    +combined work, a derivative of the original library.  The ordinary
    +General Public License therefore permits such linking only if the
    +entire combination fits its criteria of freedom.  The Lesser General
    +Public License permits more lax criteria for linking other code with
    +the library.
    +
    +  We call this license the "Lesser" General Public License because it
    +does Less to protect the user's freedom than the ordinary General
    +Public License.  It also provides other free software developers Less
    +of an advantage over competing non-free programs.  These disadvantages
    +are the reason we use the ordinary General Public License for many
    +libraries.  However, the Lesser license provides advantages in certain
    +special circumstances.
    +
    +  For example, on rare occasions, there may be a special need to
    +encourage the widest possible use of a certain library, so that it becomes
    +a de-facto standard.  To achieve this, non-free programs must be
    +allowed to use the library.  A more frequent case is that a free
    +library does the same job as widely used non-free libraries.  In this
    +case, there is little to gain by limiting the free library to free
    +software only, so we use the Lesser General Public License.
    +
    +  In other cases, permission to use a particular library in non-free
    +programs enables a greater number of people to use a large body of
    +free software.  For example, permission to use the GNU C Library in
    +non-free programs enables many more people to use the whole GNU
    +operating system, as well as its variant, the GNU/Linux operating
    +system.
    +
    +  Although the Lesser General Public License is Less protective of the
    +users' freedom, it does ensure that the user of a program that is
    +linked with the Library has the freedom and the wherewithal to run
    +that program using a modified version of the Library.
    +
    +  The precise terms and conditions for copying, distribution and
    +modification follow.  Pay close attention to the difference between a
    +"work based on the library" and a "work that uses the library".  The
    +former contains code derived from the library, whereas the latter must
    +be combined with the library in order to run.
    +
    +                  GNU LESSER GENERAL PUBLIC LICENSE
    +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    +
    +  0. This License Agreement applies to any software library or other
    +program which contains a notice placed by the copyright holder or
    +other authorized party saying it may be distributed under the terms of
    +this Lesser General Public License (also called "this License").
    +Each licensee is addressed as "you".
    +
    +  A "library" means a collection of software functions and/or data
    +prepared so as to be conveniently linked with application programs
    +(which use some of those functions and data) to form executables.
    +
    +  The "Library", below, refers to any such software library or work
    +which has been distributed under these terms.  A "work based on the
    +Library" means either the Library or any derivative work under
    +copyright law: that is to say, a work containing the Library or a
    +portion of it, either verbatim or with modifications and/or translated
    +straightforwardly into another language.  (Hereinafter, translation is
    +included without limitation in the term "modification".)
    +
    +  "Source code" for a work means the preferred form of the work for
    +making modifications to it.  For a library, complete source code means
    +all the source code for all modules it contains, plus any associated
    +interface definition files, plus the scripts used to control compilation
    +and installation of the library.
    +
    +  Activities other than copying, distribution and modification are not
    +covered by this License; they are outside its scope.  The act of
    +running a program using the Library is not restricted, and output from
    +such a program is covered only if its contents constitute a work based
    +on the Library (independent of the use of the Library in a tool for
    +writing it).  Whether that is true depends on what the Library does
    +and what the program that uses the Library does.
    +
    +  1. You may copy and distribute verbatim copies of the Library's
    +complete source code as you receive it, in any medium, provided that
    +you conspicuously and appropriately publish on each copy an
    +appropriate copyright notice and disclaimer of warranty; keep intact
    +all the notices that refer to this License and to the absence of any
    +warranty; and distribute a copy of this License along with the
    +Library.
    +
    +  You may charge a fee for the physical act of transferring a copy,
    +and you may at your option offer warranty protection in exchange for a
    +fee.
    +
    +  2. You may modify your copy or copies of the Library or any portion
    +of it, thus forming a work based on the Library, and copy and
    +distribute such modifications or work under the terms of Section 1
    +above, provided that you also meet all of these conditions:
    +
    +    a) The modified work must itself be a software library.
    +
    +    b) You must cause the files modified to carry prominent notices
    +    stating that you changed the files and the date of any change.
    +
    +    c) You must cause the whole of the work to be licensed at no
    +    charge to all third parties under the terms of this License.
    +
    +    d) If a facility in the modified Library refers to a function or a
    +    table of data to be supplied by an application program that uses
    +    the facility, other than as an argument passed when the facility
    +    is invoked, then you must make a good faith effort to ensure that,
    +    in the event an application does not supply such function or
    +    table, the facility still operates, and performs whatever part of
    +    its purpose remains meaningful.
    +
    +    (For example, a function in a library to compute square roots has
    +    a purpose that is entirely well-defined independent of the
    +    application.  Therefore, Subsection 2d requires that any
    +    application-supplied function or table used by this function must
    +    be optional: if the application does not supply it, the square
    +    root function must still compute square roots.)
    +
    +These requirements apply to the modified work as a whole.  If
    +identifiable sections of that work are not derived from the Library,
    +and can be reasonably considered independent and separate works in
    +themselves, then this License, and its terms, do not apply to those
    +sections when you distribute them as separate works.  But when you
    +distribute the same sections as part of a whole which is a work based
    +on the Library, the distribution of the whole must be on the terms of
    +this License, whose permissions for other licensees extend to the
    +entire whole, and thus to each and every part regardless of who wrote
    +it.
    +
    +Thus, it is not the intent of this section to claim rights or contest
    +your rights to work written entirely by you; rather, the intent is to
    +exercise the right to control the distribution of derivative or
    +collective works based on the Library.
    +
    +In addition, mere aggregation of another work not based on the Library
    +with the Library (or with a work based on the Library) on a volume of
    +a storage or distribution medium does not bring the other work under
    +the scope of this License.
    +
    +  3. You may opt to apply the terms of the ordinary GNU General Public
    +License instead of this License to a given copy of the Library.  To do
    +this, you must alter all the notices that refer to this License, so
    +that they refer to the ordinary GNU General Public License, version 2,
    +instead of to this License.  (If a newer version than version 2 of the
    +ordinary GNU General Public License has appeared, then you can specify
    +that version instead if you wish.)  Do not make any other change in
    +these notices.
    +
    +  Once this change is made in a given copy, it is irreversible for
    +that copy, so the ordinary GNU General Public License applies to all
    +subsequent copies and derivative works made from that copy.
    +
    +  This option is useful when you wish to copy part of the code of
    +the Library into a program that is not a library.
    +
    +  4. You may copy and distribute the Library (or a portion or
    +derivative of it, under Section 2) in object code or executable form
    +under the terms of Sections 1 and 2 above provided that you accompany
    +it with the complete corresponding machine-readable source code, which
    +must be distributed under the terms of Sections 1 and 2 above on a
    +medium customarily used for software interchange.
    +
    +  If distribution of object code is made by offering access to copy
    +from a designated place, then offering equivalent access to copy the
    +source code from the same place satisfies the requirement to
    +distribute the source code, even though third parties are not
    +compelled to copy the source along with the object code.
    +
    +  5. A program that contains no derivative of any portion of the
    +Library, but is designed to work with the Library by being compiled or
    +linked with it, is called a "work that uses the Library".  Such a
    +work, in isolation, is not a derivative work of the Library, and
    +therefore falls outside the scope of this License.
    +
    +  However, linking a "work that uses the Library" with the Library
    +creates an executable that is a derivative of the Library (because it
    +contains portions of the Library), rather than a "work that uses the
    +library".  The executable is therefore covered by this License.
    +Section 6 states terms for distribution of such executables.
    +
    +  When a "work that uses the Library" uses material from a header file
    +that is part of the Library, the object code for the work may be a
    +derivative work of the Library even though the source code is not.
    +Whether this is true is especially significant if the work can be
    +linked without the Library, or if the work is itself a library.  The
    +threshold for this to be true is not precisely defined by law.
    +
    +  If such an object file uses only numerical parameters, data
    +structure layouts and accessors, and small macros and small inline
    +functions (ten lines or less in length), then the use of the object
    +file is unrestricted, regardless of whether it is legally a derivative
    +work.  (Executables containing this object code plus portions of the
    +Library will still fall under Section 6.)
    +
    +  Otherwise, if the work is a derivative of the Library, you may
    +distribute the object code for the work under the terms of Section 6.
    +Any executables containing that work also fall under Section 6,
    +whether or not they are linked directly with the Library itself.
    +
    +  6. As an exception to the Sections above, you may also combine or
    +link a "work that uses the Library" with the Library to produce a
    +work containing portions of the Library, and distribute that work
    +under terms of your choice, provided that the terms permit
    +modification of the work for the customer's own use and reverse
    +engineering for debugging such modifications.
    +
    +  You must give prominent notice with each copy of the work that the
    +Library is used in it and that the Library and its use are covered by
    +this License.  You must supply a copy of this License.  If the work
    +during execution displays copyright notices, you must include the
    +copyright notice for the Library among them, as well as a reference
    +directing the user to the copy of this License.  Also, you must do one
    +of these things:
    +
    +    a) Accompany the work with the complete corresponding
    +    machine-readable source code for the Library including whatever
    +    changes were used in the work (which must be distributed under
    +    Sections 1 and 2 above); and, if the work is an executable linked
    +    with the Library, with the complete machine-readable "work that
    +    uses the Library", as object code and/or source code, so that the
    +    user can modify the Library and then relink to produce a modified
    +    executable containing the modified Library.  (It is understood
    +    that the user who changes the contents of definitions files in the
    +    Library will not necessarily be able to recompile the application
    +    to use the modified definitions.)
    +
    +    b) Use a suitable shared library mechanism for linking with the
    +    Library.  A suitable mechanism is one that (1) uses at run time a
    +    copy of the library already present on the user's computer system,
    +    rather than copying library functions into the executable, and (2)
    +    will operate properly with a modified version of the library, if
    +    the user installs one, as long as the modified version is
    +    interface-compatible with the version that the work was made with.
    +
    +    c) Accompany the work with a written offer, valid for at
    +    least three years, to give the same user the materials
    +    specified in Subsection 6a, above, for a charge no more
    +    than the cost of performing this distribution.
    +
    +    d) If distribution of the work is made by offering access to copy
    +    from a designated place, offer equivalent access to copy the above
    +    specified materials from the same place.
    +
    +    e) Verify that the user has already received a copy of these
    +    materials or that you have already sent this user a copy.
    +
    +  For an executable, the required form of the "work that uses the
    +Library" must include any data and utility programs needed for
    +reproducing the executable from it.  However, as a special exception,
    +the materials to be distributed need not include anything that is
    +normally distributed (in either source or binary form) with the major
    +components (compiler, kernel, and so on) of the operating system on
    +which the executable runs, unless that component itself accompanies
    +the executable.
    +
    +  It may happen that this requirement contradicts the license
    +restrictions of other proprietary libraries that do not normally
    +accompany the operating system.  Such a contradiction means you cannot
    +use both them and the Library together in an executable that you
    +distribute.
    +
    +  7. You may place library facilities that are a work based on the
    +Library side-by-side in a single library together with other library
    +facilities not covered by this License, and distribute such a combined
    +library, provided that the separate distribution of the work based on
    +the Library and of the other library facilities is otherwise
    +permitted, and provided that you do these two things:
    +
    +    a) Accompany the combined library with a copy of the same work
    +    based on the Library, uncombined with any other library
    +    facilities.  This must be distributed under the terms of the
    +    Sections above.
    +
    +    b) Give prominent notice with the combined library of the fact
    +    that part of it is a work based on the Library, and explaining
    +    where to find the accompanying uncombined form of the same work.
    +
    +  8. You may not copy, modify, sublicense, link with, or distribute
    +the Library except as expressly provided under this License.  Any
    +attempt otherwise to copy, modify, sublicense, link with, or
    +distribute the Library is void, and will automatically terminate your
    +rights under this License.  However, parties who have received copies,
    +or rights, from you under this License will not have their licenses
    +terminated so long as such parties remain in full compliance.
    +
    +  9. You are not required to accept this License, since you have not
    +signed it.  However, nothing else grants you permission to modify or
    +distribute the Library or its derivative works.  These actions are
    +prohibited by law if you do not accept this License.  Therefore, by
    +modifying or distributing the Library (or any work based on the
    +Library), you indicate your acceptance of this License to do so, and
    +all its terms and conditions for copying, distributing or modifying
    +the Library or works based on it.
    +
    +  10. Each time you redistribute the Library (or any work based on the
    +Library), the recipient automatically receives a license from the
    +original licensor to copy, distribute, link with or modify the Library
    +subject to these terms and conditions.  You may not impose any further
    +restrictions on the recipients' exercise of the rights granted herein.
    +You are not responsible for enforcing compliance by third parties with
    +this License.
    +
    +  11. If, as a consequence of a court judgment or allegation of patent
    +infringement or for any other reason (not limited to patent issues),
    +conditions are imposed on you (whether by court order, agreement or
    +otherwise) that contradict the conditions of this License, they do not
    +excuse you from the conditions of this License.  If you cannot
    +distribute so as to satisfy simultaneously your obligations under this
    +License and any other pertinent obligations, then as a consequence you
    +may not distribute the Library at all.  For example, if a patent
    +license would not permit royalty-free redistribution of the Library by
    +all those who receive copies directly or indirectly through you, then
    +the only way you could satisfy both it and this License would be to
    +refrain entirely from distribution of the Library.
    +
    +If any portion of this section is held invalid or unenforceable under any
    +particular circumstance, the balance of the section is intended to apply,
    +and the section as a whole is intended to apply in other circumstances.
    +
    +It is not the purpose of this section to induce you to infringe any
    +patents or other property right claims or to contest validity of any
    +such claims; this section has the sole purpose of protecting the
    +integrity of the free software distribution system which is
    +implemented by public license practices.  Many people have made
    +generous contributions to the wide range of software distributed
    +through that system in reliance on consistent application of that
    +system; it is up to the author/donor to decide if he or she is willing
    +to distribute software through any other system and a licensee cannot
    +impose that choice.
    +
    +This section is intended to make thoroughly clear what is believed to
    +be a consequence of the rest of this License.
    +
    +  12. If the distribution and/or use of the Library is restricted in
    +certain countries either by patents or by copyrighted interfaces, the
    +original copyright holder who places the Library under this License may add
    +an explicit geographical distribution limitation excluding those countries,
    +so that distribution is permitted only in or among countries not thus
    +excluded.  In such case, this License incorporates the limitation as if
    +written in the body of this License.
    +
    +  13. The Free Software Foundation may publish revised and/or new
    +versions of the Lesser General Public License from time to time.
    +Such new versions will be similar in spirit to the present version,
    +but may differ in detail to address new problems or concerns.
    +
    +Each version is given a distinguishing version number.  If the Library
    +specifies a version number of this License which applies to it and
    +"any later version", you have the option of following the terms and
    +conditions either of that version or of any later version published by
    +the Free Software Foundation.  If the Library does not specify a
    +license version number, you may choose any version ever published by
    +the Free Software Foundation.
    +
    +  14. If you wish to incorporate parts of the Library into other free
    +programs whose distribution conditions are incompatible with these,
    +write to the author to ask for permission.  For software which is
    +copyrighted by the Free Software Foundation, write to the Free
    +Software Foundation; we sometimes make exceptions for this.  Our
    +decision will be guided by the two goals of preserving the free status
    +of all derivatives of our free software and of promoting the sharing
    +and reuse of software generally.
    +
    +                            NO WARRANTY
    +
    +  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
    +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
    +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
    +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
    +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
    +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    +PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
    +LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
    +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
    +
    +  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
    +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
    +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
    +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
    +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
    +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
    +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
    +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
    +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
    +DAMAGES.
    +
    +                     END OF TERMS AND CONDITIONS
    +
    +           How to Apply These Terms to Your New Libraries
    +
    +  If you develop a new library, and you want it to be of the greatest
    +possible use to the public, we recommend making it free software that
    +everyone can redistribute and change.  You can do so by permitting
    +redistribution under these terms (or, alternatively, under the terms of the
    +ordinary General Public License).
    +
    +  To apply these terms, attach the following notices to the library.  It is
    +safest to attach them to the start of each source file to most effectively
    +convey the exclusion of warranty; and each file should have at least the
    +"copyright" line and a pointer to where the full notice is found.
    +
    +    
    +    Copyright (C)   
    +
    +    This library is free software; you can redistribute it and/or
    +    modify it under the terms of the GNU Lesser General Public
    +    License as published by the Free Software Foundation; either
    +    version 2.1 of the License, or (at your option) any later version.
    +
    +    This library is distributed in the hope that it will be useful,
    +    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +    Lesser General Public License for more details.
    +
    +    You should have received a copy of the GNU Lesser General Public
    +    License along with this library; if not, write to the Free Software
    +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    +
    +Also add information on how to contact you by electronic and paper mail.
    +
    +You should also get your employer (if you work as a programmer) or your
    +school, if any, to sign a "copyright disclaimer" for the library, if
    +necessary.  Here is a sample; alter the names:
    +
    +  Yoyodyne, Inc., hereby disclaims all copyright interest in the
    +  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
    +
    +  , 1 April 1990
    +  Ty Coon, President of Vice
    +
    +That's all there is to it!
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/javafx.media/libffi.md pycharm-2019.1/jre64/legal/javafx.media/libffi.md --- pycharm-2018.3.5/jre64/legal/javafx.media/libffi.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.media/libffi.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,29 @@ +## LibFFI v3.2.1 + +### LibFFI License +
    +
    +libffi - Copyright (c) 1996-2014  Anthony Green, Red Hat, Inc and others.
    +See source files for details.
    +
    +Permission is hereby granted, free of charge, to any person obtaining
    +a copy of this software and associated documentation files (the
    +``Software''), to deal in the Software without restriction, including
    +without limitation the rights to use, copy, modify, merge, publish,
    +distribute, sublicense, and/or sell copies of the Software, and to
    +permit persons to whom the Software is furnished to do so, subject to
    +the following conditions:
    +
    +The above copyright notice and this permission notice shall be
    +included in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
    +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
    + diff -Nru pycharm-2018.3.5/jre64/legal/javafx.media/LICENSE pycharm-2019.1/jre64/legal/javafx.media/LICENSE --- pycharm-2018.3.5/jre64/legal/javafx.media/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.media/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.swing/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/javafx.swing/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/javafx.swing/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.swing/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.swing/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/javafx.swing/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/javafx.swing/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.swing/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.swing/LICENSE pycharm-2019.1/jre64/legal/javafx.swing/LICENSE --- pycharm-2018.3.5/jre64/legal/javafx.swing/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.swing/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.web/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/javafx.web/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/javafx.web/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.web/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.web/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/javafx.web/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/javafx.web/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.web/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.web/icu_v51.md pycharm-2019.1/jre64/legal/javafx.web/icu_v51.md --- pycharm-2018.3.5/jre64/legal/javafx.web/icu_v51.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.web/icu_v51.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,325 @@ +## IBM International Components for Unicode (ICU4C) v51.2 + +### ICU License +
    +ICU License - ICU 1.8.1 and later
    +
    +COPYRIGHT AND PERMISSION NOTICE
    +
    +Copyright (c) 1995-2013 International Business Machines Corporation and others
    +
    +All rights reserved.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy of
    +this software and associated documentation files (the "Software"), to deal in
    +the Software without restriction, including without limitation the rights to
    +use, copy, modify, merge, publish, distribute, and/or sell copies of the
    +Software, and to permit persons to whom the Software is furnished to do so,
    +provided that the above copyright notice(s) and this permission notice appear
    +in all copies of the Software and that both the above copyright notice(s) and
    +this permission notice appear in supporting documentation.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
    +NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE
    +LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
    +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
    +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +
    +Except as contained in this notice, the name of a copyright holder shall not be
    +used in advertising or otherwise to promote the sale, use or other dealings in
    +this Software without prior written authorization of the copyright holder.
    +
    +
    + All trademarks and registered trademarks mentioned herein are the property of
    + their respective owners.
    +
    +
    +Third-Party Software Licenses
    +This section contains third-party software notices and/or additional terms for
    +licensed third-party software components included within ICU libraries.
    +1. Unicode Data Files and Software
    +
    +EXHIBIT 1
    + UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
    +
    +
    +Unicode Data Files include all data files under the directories
    +http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
    +http://www.unicode.org/cldr/data/. Unicode Data Files do not include PDF online
    +code charts under the directory http://www.unicode.org/Public/. Software
    +includes any source code published in the Unicode Standard or under the
    +directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
    +http://www.unicode.org/cldr/data/.
    +
    +NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING,
    +INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"),
    +AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND
    +BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE,
    +DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
    +
    +COPYRIGHT AND PERMISSION NOTICE
    +
    +Copyright © 1991-2013 Unicode, Inc. All rights reserved. Distributed under the
    +Terms of Use in http://www.unicode.org/copyright.html.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy of
    +the Unicode data files and any associated documentation (the "Data Files") or
    +Unicode software and any associated documentation (the "Software") to deal in
    +the Data Files or Software without restriction, including without limitation the
    +rights to use, copy, modify, merge, publish, distribute, and/or sell copies of
    +the Data Files or Software, and to permit persons to whom the Data Files or
    +Software are furnished to do so, provided that (a) the above copyright notice(s)
    +and this permission notice appear with all copies of the Data Files or Software,
    +(b) both the above copyright notice(s) and this permission notice appear in
    +associated documentation, and (c) there is clear notice in each modified Data
    +File or in the Software as well as in the documentation associated with the
    +Data File(s) or Software that the data or software has been modified.
    +
    +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
    +PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
    +THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
    +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
    +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
    +OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR
    +SOFTWARE.
    +
    +Except as contained in this notice, the name of a copyright holder shall not be
    +used in advertising or otherwise to promote the sale, use or other dealings in
    +these Data Files or Software without prior written authorization of the
    +copyright holder.
    +
    +
    +Unicode and the Unicode logo are trademarks of Unicode, Inc. in the United
    +States and other countries. All third party trademarks referenced herein are the
    +property of their respective owners.
    +
    +2. Chinese/Japanese Word Break Dictionary Data (cjdict.txt)
    + # The Google Chrome software developed by Google is licensed under the BSD
    + # license. Other software included in this distribution is provided under other
    + # licenses, as set forth below.
    + #
    + # The BSD License
    + # http://opensource.org/licenses/bsd-license.php
    + # Copyright (C) 2006-2008, Google Inc.
    + #
    + # All rights reserved.
    + #
    + # Redistribution and use in source and binary forms, with or without
    + # modification, are permitted provided that the following conditions are met:
    + #
    + # Redistributions of source code must retain the above copyright notice, this
    + # list of conditions and the following disclaimer.
    + # Redistributions in binary form must reproduce the above copyright notice,
    + # this list of conditions and the following disclaimer in the documentation
    + # and/or other materials provided with the distribution.
    + # Neither the name of Google Inc. nor the names of its contributors may be used
    + # to endorse or promote products derived from this software without specific
    + # prior written permission.
    + #
    + #
    + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    + # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    + # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    + # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    + # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    + # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    + # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    + # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    + # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    + # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    + # POSSIBILITY OF SUCH DAMAGE.
    + #
    + #
    + # The word list in cjdict.txt are generated by combining three word lists
    + # listed below with further processing for compound word breaking. The
    + # frequency is generated
    + # with an iterative training against Google web corpora.
    + #
    + # * Libtabe (Chinese)
    + # - https://sourceforge.net/project/?group_id=1519
    + # - Its license terms and conditions are shown below.
    + #
    + # * IPADIC (Japanese)
    + # - http://chasen.aist-nara.ac.jp/chasen/distribution.html
    + # - Its license terms and conditions are shown below.
    + #
    + # ---------COPYING.libtabe ---- BEGIN--------------------
    + #
    + # /*
    + # * Copyrighy (c) 1999 TaBE Project.
    + # * Copyright (c) 1999 Pai-Hsiang Hsiao.
    + # * All rights reserved.
    + # *
    + # * Redistribution and use in source and binary forms, with or without
    + # * modification, are permitted provided that the following conditions
    + # * are met:
    + # *
    + # * . Redistributions of source code must retain the above copyright
    + # * notice, this list of conditions and the following disclaimer.
    + # * . Redistributions in binary form must reproduce the above copyright
    + # * notice, this list of conditions and the following disclaimer in
    + # * the documentation and/or other materials provided with the
    + # * distribution.
    + # * . Neither the name of the TaBE Project nor the names of its
    + # * contributors may be used to endorse or promote products derived
    + # * from this software without specific prior written permission.
    + # *
    + # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    + # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    + # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
    + # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
    + # * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
    + # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    + # * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    + # * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    + # * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    + # * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    + # * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
    + # * OF THE POSSIBILITY OF SUCH DAMAGE.
    + # */
    + #
    + # /*
    + # * Copyright (c) 1999 Computer Systems and Communication Lab,
    + # * Institute of Information Science, Academia Sinica.
    + # * All rights reserved.
    + # *
    + # * Redistribution and use in source and binary forms, with or without
    + # * modification, are permitted provided that the following conditions
    + # * are met:
    + # *
    + # * . Redistributions of source code must retain the above copyright
    + # * notice, this list of conditions and the following disclaimer.
    + # * . Redistributions in binary form must reproduce the above copyright
    + # * notice, this list of conditions and the following disclaimer in
    + # * the documentation and/or other materials provided with the
    + # * distribution.
    + # * . Neither the name of the Computer Systems and Communication Lab
    + # * nor the names of its contributors may be used to endorse or
    + # * promote products derived from this software without specific
    + # * prior written permission.
    + # *
    + # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    + # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    + # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
    + # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
    + # * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
    + # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    + # * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    + # * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    + # * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    + # * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    + # * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
    + # * OF THE POSSIBILITY OF SUCH DAMAGE.
    + # */
    + #
    + # Copyright 1996 Chih-Hao Tsai @ Beckman Institute, University of Illinois
    + # c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4
    + #
    + # ---------------COPYING.libtabe-----END------------------------------------
    + #
    + #
    + # ---------------COPYING.ipadic-----BEGIN------------------------------------
    + #
    + # Copyright 2000, 2001, 2002, 2003 Nara Institute of Science
    + # and Technology. All Rights Reserved.
    + #
    + # Use, reproduction, and distribution of this software is permitted.
    + # Any copy of this software, whether in its original form or modified,
    + # must include both the above copyright notice and the following
    + # paragraphs.
    + #
    + # Nara Institute of Science and Technology (NAIST),
    + # the copyright holders, disclaims all warranties with regard to this
    + # software, including all implied warranties of merchantability and
    + # fitness, in no event shall NAIST be liable for
    + # any special, indirect or consequential damages or any damages
    + # whatsoever resulting from loss of use, data or profits, whether in an
    + # action of contract, negligence or other tortuous action, arising out
    + # of or in connection with the use or performance of this software.
    + #
    + # A large portion of the dictionary entries
    + # originate from ICOT Free Software. The following conditions for ICOT
    + # Free Software applies to the current dictionary as well.
    + #
    + # Each User may also freely distribute the Program, whether in its
    + # original form or modified, to any third party or parties, PROVIDED
    + # that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear
    + # on, or be attached to, the Program, which is distributed substantially
    + # in the same form as set out herein and that such intended
    + # distribution, if actually made, will neither violate or otherwise
    + # contravene any of the laws and regulations of the countries having
    + # jurisdiction over the User or the intended distribution itself.
    + #
    + # NO WARRANTY
    + #
    + # The program was produced on an experimental basis in the course of the
    + # research and development conducted during the project and is provided
    + # to users as so produced on an experimental basis. Accordingly, the
    + # program is provided without any warranty whatsoever, whether express,
    + # implied, statutory or otherwise. The term "warranty" used herein
    + # includes, but is not limited to, any warranty of the quality,
    + # performance, merchantability and fitness for a particular purpose of
    + # the program and the nonexistence of any infringement or violation of
    + # any right of any third party.
    + #
    + # Each user of the program will agree and understand, and be deemed to
    + # have agreed and understood, that there is no warranty whatsoever for
    + # the program and, accordingly, the entire risk arising from or
    + # otherwise connected with the program is assumed by the user.
    + #
    + # Therefore, neither ICOT, the copyright holder, or any other
    + # organization that participated in or was otherwise related to the
    + # development of the program and their respective officials, directors,
    + # officers and other employees shall be held liable for any and all
    + # damages, including, without limitation, general, special, incidental
    + # and consequential damages, arising out of or otherwise in connection
    + # with the use or inability to use the program or any product, material
    + # or result produced or otherwise obtained by using the program,
    + # regardless of whether they have been advised of, or otherwise had
    + # knowledge of, the possibility of such damages at any time during the
    + # project or thereafter. Each user will be deemed to have agreed to the
    + # foregoing by his or her commencement of use of the program. The term
    + # "use" as used herein includes, but is not limited to, the use,
    + # modification, copying and distribution of the program and the
    + # production of secondary products from the program.
    + #
    + # In the case where the program, whether in its original form or
    + # modified, was distributed or delivered to or received by a user from
    + # any person, organization or entity other than ICOT, unless it makes or
    + # grants independently of ICOT any specific warranty to the user in
    + # writing, such person, organization or entity, will also be exempted
    + # from and not be held liable to the user for any such damages as noted
    + # above as far as the program is concerned.
    + #
    + # ---------------COPYING.ipadic-----END------------------------------------
    +
    +
    +3. Time Zone Database
    +
    +ICU uses the public domain data and code derived from Time Zone Database for
    +its time zone support. The ownership of the TZ database is explained in
    +BCP 175: Procedure for Maintaining the Time Zone Database section 7.
    +
    +
    +7. Database Ownership
    +
    +   The TZ database itself is not an IETF Contribution or an IETF
    +   document. Rather it is a pre-existing and regularly updated work
    +   that is in the public domain, and is intended to remain in the public
    +   domain. Therefore, BCPs 78 [RFC5378] and 79 [RFC3979] do not apply
    +   to the TZ Database or contributions that individuals make to it.
    +   Should any claims be made and substantiated against the TZ Database,
    +   the organization that is providing the IANA Considerations defined in
    +   this RFC, under the memorandum of understanding with the IETF,
    +   currently ICANN, may act in accordance with all competent court
    +   orders. No ownership claims will be made by ICANN or the IETF Trust
    +   on the database or the code. Any person making a contribution to the
    +   database or code waives all rights to future claims in that
    +   contribution or in the TZ Database.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/javafx.web/libxml2.md pycharm-2019.1/jre64/legal/javafx.web/libxml2.md --- pycharm-2018.3.5/jre64/legal/javafx.web/libxml2.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.web/libxml2.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,23 @@ +## xmlsoft.org: libxml2 v2.9.7 + +### libxml2 License +
    +Permission is hereby granted, free of charge, to any person obtaining a copy of
    +this software and associated documentation files (the "Software"), to deal in
    +the Software without restriction, including without limitation the rights to
    +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
    +of the Software, and to permit persons to whom the Software is furnished to do
    +so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/javafx.web/libxslt.md pycharm-2019.1/jre64/legal/javafx.web/libxslt.md --- pycharm-2018.3.5/jre64/legal/javafx.web/libxslt.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.web/libxslt.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,24 @@ +## xmlsoft.org: libxslt v1.1.28 + +### libxslt License +
    +Copyright (C) 1998-2012 Daniel Veillard.  All Rights Reserved.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a
    +copy of this software and associated documentation files (the "Software"),
    +to deal in the Software without restriction, including without limitation
    +the rights to use, copy, modify, merge, publish, distribute, sublicense,
    +and/or sell copies of the Software, and to permit persons to whom the
    +Software is furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included
    +in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL BLFS
    +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
    +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/javafx.web/LICENSE pycharm-2019.1/jre64/legal/javafx.web/LICENSE --- pycharm-2018.3.5/jre64/legal/javafx.web/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.web/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/javafx.web/webkit.md pycharm-2019.1/jre64/legal/javafx.web/webkit.md --- pycharm-2018.3.5/jre64/legal/javafx.web/webkit.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/javafx.web/webkit.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,533 @@ +## WebKit Open Source Project: WebKit v605.1 + +### WebKit Notice +
    +You are receiving a copy of WebKit in either source or
    +object code in the JavaFX runtime or JavaFX SDK. The terms of the
    +Oracle license do NOT apply to WebKit; it is
    +licensed under the following license, separately from the Oracle programs
    +you receive. If you do not wish to install this library, you may delete
    +this library:
    +
    +   - On Linux systems: delete $(JAVA_HOME)/lib/libjfxwebkit.so
    +   - On Mac OS X systems: delete $(JAVA_HOME)/lib/libjfxwebkit.dylib
    +   - On Windows systems: delete $(JAVA_HOME)\bin\jfxwebkit.dll
    +
    +A copy of the Oracle modified WebKit library source code is located
    +in the following OpenJDK Mercurial repository:
    +
    +   http://hg.openjdk.java.net/openjfx/jfx/rt
    +
    +You can use Mercurial to clone the repository or you can browse the
    +source using a web browser. The root directory of the WebKit source
    +code is here:
    +
    +   rt/modules/javafx.web/src/main/native/
    +
    + +### LGPL 2.1 +
    +                  GNU LESSER GENERAL PUBLIC LICENSE
    +                       Version 2.1, February 1999
    +
    + Copyright (C) 1991, 1999 Free Software Foundation, Inc.
    + 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    + Everyone is permitted to copy and distribute verbatim copies
    + of this license document, but changing it is not allowed.
    +
    +[This is the first released version of the Lesser GPL.  It also counts
    + as the successor of the GNU Library Public License, version 2, hence
    + the version number 2.1.]
    +
    +                            Preamble
    +
    +  The licenses for most software are designed to take away your
    +freedom to share and change it.  By contrast, the GNU General Public
    +Licenses are intended to guarantee your freedom to share and change
    +free software--to make sure the software is free for all its users.
    +
    +  This license, the Lesser General Public License, applies to some
    +specially designated software packages--typically libraries--of the
    +Free Software Foundation and other authors who decide to use it.  You
    +can use it too, but we suggest you first think carefully about whether
    +this license or the ordinary General Public License is the better
    +strategy to use in any particular case, based on the explanations below.
    +
    +  When we speak of free software, we are referring to freedom of use,
    +not price.  Our General Public Licenses are designed to make sure that
    +you have the freedom to distribute copies of free software (and charge
    +for this service if you wish); that you receive source code or can get
    +it if you want it; that you can change the software and use pieces of
    +it in new free programs; and that you are informed that you can do
    +these things.
    +
    +  To protect your rights, we need to make restrictions that forbid
    +distributors to deny you these rights or to ask you to surrender these
    +rights.  These restrictions translate to certain responsibilities for
    +you if you distribute copies of the library or if you modify it.
    +
    +  For example, if you distribute copies of the library, whether gratis
    +or for a fee, you must give the recipients all the rights that we gave
    +you.  You must make sure that they, too, receive or can get the source
    +code.  If you link other code with the library, you must provide
    +complete object files to the recipients, so that they can relink them
    +with the library after making changes to the library and recompiling
    +it.  And you must show them these terms so they know their rights.
    +
    +  We protect your rights with a two-step method: (1) we copyright the
    +library, and (2) we offer you this license, which gives you legal
    +permission to copy, distribute and/or modify the library.
    +
    +  To protect each distributor, we want to make it very clear that
    +there is no warranty for the free library.  Also, if the library is
    +modified by someone else and passed on, the recipients should know
    +that what they have is not the original version, so that the original
    +author's reputation will not be affected by problems that might be
    +introduced by others.
    +
    +  Finally, software patents pose a constant threat to the existence of
    +any free program.  We wish to make sure that a company cannot
    +effectively restrict the users of a free program by obtaining a
    +restrictive license from a patent holder.  Therefore, we insist that
    +any patent license obtained for a version of the library must be
    +consistent with the full freedom of use specified in this license.
    +
    +  Most GNU software, including some libraries, is covered by the
    +ordinary GNU General Public License.  This license, the GNU Lesser
    +General Public License, applies to certain designated libraries, and
    +is quite different from the ordinary General Public License.  We use
    +this license for certain libraries in order to permit linking those
    +libraries into non-free programs.
    +
    +  When a program is linked with a library, whether statically or using
    +a shared library, the combination of the two is legally speaking a
    +combined work, a derivative of the original library.  The ordinary
    +General Public License therefore permits such linking only if the
    +entire combination fits its criteria of freedom.  The Lesser General
    +Public License permits more lax criteria for linking other code with
    +the library.
    +
    +  We call this license the "Lesser" General Public License because it
    +does Less to protect the user's freedom than the ordinary General
    +Public License.  It also provides other free software developers Less
    +of an advantage over competing non-free programs.  These disadvantages
    +are the reason we use the ordinary General Public License for many
    +libraries.  However, the Lesser license provides advantages in certain
    +special circumstances.
    +
    +  For example, on rare occasions, there may be a special need to
    +encourage the widest possible use of a certain library, so that it becomes
    +a de-facto standard.  To achieve this, non-free programs must be
    +allowed to use the library.  A more frequent case is that a free
    +library does the same job as widely used non-free libraries.  In this
    +case, there is little to gain by limiting the free library to free
    +software only, so we use the Lesser General Public License.
    +
    +  In other cases, permission to use a particular library in non-free
    +programs enables a greater number of people to use a large body of
    +free software.  For example, permission to use the GNU C Library in
    +non-free programs enables many more people to use the whole GNU
    +operating system, as well as its variant, the GNU/Linux operating
    +system.
    +
    +  Although the Lesser General Public License is Less protective of the
    +users' freedom, it does ensure that the user of a program that is
    +linked with the Library has the freedom and the wherewithal to run
    +that program using a modified version of the Library.
    +
    +  The precise terms and conditions for copying, distribution and
    +modification follow.  Pay close attention to the difference between a
    +"work based on the library" and a "work that uses the library".  The
    +former contains code derived from the library, whereas the latter must
    +be combined with the library in order to run.
    +
    +                  GNU LESSER GENERAL PUBLIC LICENSE
    +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    +
    +  0. This License Agreement applies to any software library or other
    +program which contains a notice placed by the copyright holder or
    +other authorized party saying it may be distributed under the terms of
    +this Lesser General Public License (also called "this License").
    +Each licensee is addressed as "you".
    +
    +  A "library" means a collection of software functions and/or data
    +prepared so as to be conveniently linked with application programs
    +(which use some of those functions and data) to form executables.
    +
    +  The "Library", below, refers to any such software library or work
    +which has been distributed under these terms.  A "work based on the
    +Library" means either the Library or any derivative work under
    +copyright law: that is to say, a work containing the Library or a
    +portion of it, either verbatim or with modifications and/or translated
    +straightforwardly into another language.  (Hereinafter, translation is
    +included without limitation in the term "modification".)
    +
    +  "Source code" for a work means the preferred form of the work for
    +making modifications to it.  For a library, complete source code means
    +all the source code for all modules it contains, plus any associated
    +interface definition files, plus the scripts used to control compilation
    +and installation of the library.
    +
    +  Activities other than copying, distribution and modification are not
    +covered by this License; they are outside its scope.  The act of
    +running a program using the Library is not restricted, and output from
    +such a program is covered only if its contents constitute a work based
    +on the Library (independent of the use of the Library in a tool for
    +writing it).  Whether that is true depends on what the Library does
    +and what the program that uses the Library does.
    +
    +  1. You may copy and distribute verbatim copies of the Library's
    +complete source code as you receive it, in any medium, provided that
    +you conspicuously and appropriately publish on each copy an
    +appropriate copyright notice and disclaimer of warranty; keep intact
    +all the notices that refer to this License and to the absence of any
    +warranty; and distribute a copy of this License along with the
    +Library.
    +
    +  You may charge a fee for the physical act of transferring a copy,
    +and you may at your option offer warranty protection in exchange for a
    +fee.
    +
    +  2. You may modify your copy or copies of the Library or any portion
    +of it, thus forming a work based on the Library, and copy and
    +distribute such modifications or work under the terms of Section 1
    +above, provided that you also meet all of these conditions:
    +
    +    a) The modified work must itself be a software library.
    +
    +    b) You must cause the files modified to carry prominent notices
    +    stating that you changed the files and the date of any change.
    +
    +    c) You must cause the whole of the work to be licensed at no
    +    charge to all third parties under the terms of this License.
    +
    +    d) If a facility in the modified Library refers to a function or a
    +    table of data to be supplied by an application program that uses
    +    the facility, other than as an argument passed when the facility
    +    is invoked, then you must make a good faith effort to ensure that,
    +    in the event an application does not supply such function or
    +    table, the facility still operates, and performs whatever part of
    +    its purpose remains meaningful.
    +
    +    (For example, a function in a library to compute square roots has
    +    a purpose that is entirely well-defined independent of the
    +    application.  Therefore, Subsection 2d requires that any
    +    application-supplied function or table used by this function must
    +    be optional: if the application does not supply it, the square
    +    root function must still compute square roots.)
    +
    +These requirements apply to the modified work as a whole.  If
    +identifiable sections of that work are not derived from the Library,
    +and can be reasonably considered independent and separate works in
    +themselves, then this License, and its terms, do not apply to those
    +sections when you distribute them as separate works.  But when you
    +distribute the same sections as part of a whole which is a work based
    +on the Library, the distribution of the whole must be on the terms of
    +this License, whose permissions for other licensees extend to the
    +entire whole, and thus to each and every part regardless of who wrote
    +it.
    +
    +Thus, it is not the intent of this section to claim rights or contest
    +your rights to work written entirely by you; rather, the intent is to
    +exercise the right to control the distribution of derivative or
    +collective works based on the Library.
    +
    +In addition, mere aggregation of another work not based on the Library
    +with the Library (or with a work based on the Library) on a volume of
    +a storage or distribution medium does not bring the other work under
    +the scope of this License.
    +
    +  3. You may opt to apply the terms of the ordinary GNU General Public
    +License instead of this License to a given copy of the Library.  To do
    +this, you must alter all the notices that refer to this License, so
    +that they refer to the ordinary GNU General Public License, version 2,
    +instead of to this License.  (If a newer version than version 2 of the
    +ordinary GNU General Public License has appeared, then you can specify
    +that version instead if you wish.)  Do not make any other change in
    +these notices.
    +
    +  Once this change is made in a given copy, it is irreversible for
    +that copy, so the ordinary GNU General Public License applies to all
    +subsequent copies and derivative works made from that copy.
    +
    +  This option is useful when you wish to copy part of the code of
    +the Library into a program that is not a library.
    +
    +  4. You may copy and distribute the Library (or a portion or
    +derivative of it, under Section 2) in object code or executable form
    +under the terms of Sections 1 and 2 above provided that you accompany
    +it with the complete corresponding machine-readable source code, which
    +must be distributed under the terms of Sections 1 and 2 above on a
    +medium customarily used for software interchange.
    +
    +  If distribution of object code is made by offering access to copy
    +from a designated place, then offering equivalent access to copy the
    +source code from the same place satisfies the requirement to
    +distribute the source code, even though third parties are not
    +compelled to copy the source along with the object code.
    +
    +  5. A program that contains no derivative of any portion of the
    +Library, but is designed to work with the Library by being compiled or
    +linked with it, is called a "work that uses the Library".  Such a
    +work, in isolation, is not a derivative work of the Library, and
    +therefore falls outside the scope of this License.
    +
    +  However, linking a "work that uses the Library" with the Library
    +creates an executable that is a derivative of the Library (because it
    +contains portions of the Library), rather than a "work that uses the
    +library".  The executable is therefore covered by this License.
    +Section 6 states terms for distribution of such executables.
    +
    +  When a "work that uses the Library" uses material from a header file
    +that is part of the Library, the object code for the work may be a
    +derivative work of the Library even though the source code is not.
    +Whether this is true is especially significant if the work can be
    +linked without the Library, or if the work is itself a library.  The
    +threshold for this to be true is not precisely defined by law.
    +
    +  If such an object file uses only numerical parameters, data
    +structure layouts and accessors, and small macros and small inline
    +functions (ten lines or less in length), then the use of the object
    +file is unrestricted, regardless of whether it is legally a derivative
    +work.  (Executables containing this object code plus portions of the
    +Library will still fall under Section 6.)
    +
    +  Otherwise, if the work is a derivative of the Library, you may
    +distribute the object code for the work under the terms of Section 6.
    +Any executables containing that work also fall under Section 6,
    +whether or not they are linked directly with the Library itself.
    +
    +  6. As an exception to the Sections above, you may also combine or
    +link a "work that uses the Library" with the Library to produce a
    +work containing portions of the Library, and distribute that work
    +under terms of your choice, provided that the terms permit
    +modification of the work for the customer's own use and reverse
    +engineering for debugging such modifications.
    +
    +  You must give prominent notice with each copy of the work that the
    +Library is used in it and that the Library and its use are covered by
    +this License.  You must supply a copy of this License.  If the work
    +during execution displays copyright notices, you must include the
    +copyright notice for the Library among them, as well as a reference
    +directing the user to the copy of this License.  Also, you must do one
    +of these things:
    +
    +    a) Accompany the work with the complete corresponding
    +    machine-readable source code for the Library including whatever
    +    changes were used in the work (which must be distributed under
    +    Sections 1 and 2 above); and, if the work is an executable linked
    +    with the Library, with the complete machine-readable "work that
    +    uses the Library", as object code and/or source code, so that the
    +    user can modify the Library and then relink to produce a modified
    +    executable containing the modified Library.  (It is understood
    +    that the user who changes the contents of definitions files in the
    +    Library will not necessarily be able to recompile the application
    +    to use the modified definitions.)
    +
    +    b) Use a suitable shared library mechanism for linking with the
    +    Library.  A suitable mechanism is one that (1) uses at run time a
    +    copy of the library already present on the user's computer system,
    +    rather than copying library functions into the executable, and (2)
    +    will operate properly with a modified version of the library, if
    +    the user installs one, as long as the modified version is
    +    interface-compatible with the version that the work was made with.
    +
    +    c) Accompany the work with a written offer, valid for at
    +    least three years, to give the same user the materials
    +    specified in Subsection 6a, above, for a charge no more
    +    than the cost of performing this distribution.
    +
    +    d) If distribution of the work is made by offering access to copy
    +    from a designated place, offer equivalent access to copy the above
    +    specified materials from the same place.
    +
    +    e) Verify that the user has already received a copy of these
    +    materials or that you have already sent this user a copy.
    +
    +  For an executable, the required form of the "work that uses the
    +Library" must include any data and utility programs needed for
    +reproducing the executable from it.  However, as a special exception,
    +the materials to be distributed need not include anything that is
    +normally distributed (in either source or binary form) with the major
    +components (compiler, kernel, and so on) of the operating system on
    +which the executable runs, unless that component itself accompanies
    +the executable.
    +
    +  It may happen that this requirement contradicts the license
    +restrictions of other proprietary libraries that do not normally
    +accompany the operating system.  Such a contradiction means you cannot
    +use both them and the Library together in an executable that you
    +distribute.
    +
    +  7. You may place library facilities that are a work based on the
    +Library side-by-side in a single library together with other library
    +facilities not covered by this License, and distribute such a combined
    +library, provided that the separate distribution of the work based on
    +the Library and of the other library facilities is otherwise
    +permitted, and provided that you do these two things:
    +
    +    a) Accompany the combined library with a copy of the same work
    +    based on the Library, uncombined with any other library
    +    facilities.  This must be distributed under the terms of the
    +    Sections above.
    +
    +    b) Give prominent notice with the combined library of the fact
    +    that part of it is a work based on the Library, and explaining
    +    where to find the accompanying uncombined form of the same work.
    +
    +  8. You may not copy, modify, sublicense, link with, or distribute
    +the Library except as expressly provided under this License.  Any
    +attempt otherwise to copy, modify, sublicense, link with, or
    +distribute the Library is void, and will automatically terminate your
    +rights under this License.  However, parties who have received copies,
    +or rights, from you under this License will not have their licenses
    +terminated so long as such parties remain in full compliance.
    +
    +  9. You are not required to accept this License, since you have not
    +signed it.  However, nothing else grants you permission to modify or
    +distribute the Library or its derivative works.  These actions are
    +prohibited by law if you do not accept this License.  Therefore, by
    +modifying or distributing the Library (or any work based on the
    +Library), you indicate your acceptance of this License to do so, and
    +all its terms and conditions for copying, distributing or modifying
    +the Library or works based on it.
    +
    +  10. Each time you redistribute the Library (or any work based on the
    +Library), the recipient automatically receives a license from the
    +original licensor to copy, distribute, link with or modify the Library
    +subject to these terms and conditions.  You may not impose any further
    +restrictions on the recipients' exercise of the rights granted herein.
    +You are not responsible for enforcing compliance by third parties with
    +this License.
    +
    +  11. If, as a consequence of a court judgment or allegation of patent
    +infringement or for any other reason (not limited to patent issues),
    +conditions are imposed on you (whether by court order, agreement or
    +otherwise) that contradict the conditions of this License, they do not
    +excuse you from the conditions of this License.  If you cannot
    +distribute so as to satisfy simultaneously your obligations under this
    +License and any other pertinent obligations, then as a consequence you
    +may not distribute the Library at all.  For example, if a patent
    +license would not permit royalty-free redistribution of the Library by
    +all those who receive copies directly or indirectly through you, then
    +the only way you could satisfy both it and this License would be to
    +refrain entirely from distribution of the Library.
    +
    +If any portion of this section is held invalid or unenforceable under any
    +particular circumstance, the balance of the section is intended to apply,
    +and the section as a whole is intended to apply in other circumstances.
    +
    +It is not the purpose of this section to induce you to infringe any
    +patents or other property right claims or to contest validity of any
    +such claims; this section has the sole purpose of protecting the
    +integrity of the free software distribution system which is
    +implemented by public license practices.  Many people have made
    +generous contributions to the wide range of software distributed
    +through that system in reliance on consistent application of that
    +system; it is up to the author/donor to decide if he or she is willing
    +to distribute software through any other system and a licensee cannot
    +impose that choice.
    +
    +This section is intended to make thoroughly clear what is believed to
    +be a consequence of the rest of this License.
    +
    +  12. If the distribution and/or use of the Library is restricted in
    +certain countries either by patents or by copyrighted interfaces, the
    +original copyright holder who places the Library under this License may add
    +an explicit geographical distribution limitation excluding those countries,
    +so that distribution is permitted only in or among countries not thus
    +excluded.  In such case, this License incorporates the limitation as if
    +written in the body of this License.
    +
    +  13. The Free Software Foundation may publish revised and/or new
    +versions of the Lesser General Public License from time to time.
    +Such new versions will be similar in spirit to the present version,
    +but may differ in detail to address new problems or concerns.
    +
    +Each version is given a distinguishing version number.  If the Library
    +specifies a version number of this License which applies to it and
    +"any later version", you have the option of following the terms and
    +conditions either of that version or of any later version published by
    +the Free Software Foundation.  If the Library does not specify a
    +license version number, you may choose any version ever published by
    +the Free Software Foundation.
    +
    +  14. If you wish to incorporate parts of the Library into other free
    +programs whose distribution conditions are incompatible with these,
    +write to the author to ask for permission.  For software which is
    +copyrighted by the Free Software Foundation, write to the Free
    +Software Foundation; we sometimes make exceptions for this.  Our
    +decision will be guided by the two goals of preserving the free status
    +of all derivatives of our free software and of promoting the sharing
    +and reuse of software generally.
    +
    +                            NO WARRANTY
    +
    +  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
    +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
    +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
    +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
    +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
    +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    +PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
    +LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
    +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
    +
    +  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
    +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
    +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
    +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
    +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
    +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
    +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
    +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
    +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
    +DAMAGES.
    +
    +                     END OF TERMS AND CONDITIONS
    +
    +           How to Apply These Terms to Your New Libraries
    +
    +  If you develop a new library, and you want it to be of the greatest
    +possible use to the public, we recommend making it free software that
    +everyone can redistribute and change.  You can do so by permitting
    +redistribution under these terms (or, alternatively, under the terms of the
    +ordinary General Public License).
    +
    +  To apply these terms, attach the following notices to the library.  It is
    +safest to attach them to the start of each source file to most effectively
    +convey the exclusion of warranty; and each file should have at least the
    +"copyright" line and a pointer to where the full notice is found.
    +
    +    
    +    Copyright (C)   
    +
    +    This library is free software; you can redistribute it and/or
    +    modify it under the terms of the GNU Lesser General Public
    +    License as published by the Free Software Foundation; either
    +    version 2.1 of the License, or (at your option) any later version.
    +
    +    This library is distributed in the hope that it will be useful,
    +    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +    Lesser General Public License for more details.
    +
    +    You should have received a copy of the GNU Lesser General Public
    +    License along with this library; if not, write to the Free Software
    +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    +
    +Also add information on how to contact you by electronic and paper mail.
    +
    +You should also get your employer (if you work as a programmer) or your
    +school, if any, to sign a "copyright disclaimer" for the library, if
    +necessary.  Here is a sample; alter the names:
    +
    +  Yoyodyne, Inc., hereby disclaims all copyright interest in the
    +  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
    +
    +  , 1 April 1990
    +  Ty Coon, President of Vice
    +
    +That's all there is to it!
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.instrument/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.instrument/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.instrument/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.instrument/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.instrument/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.instrument/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.instrument/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.instrument/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.instrument/LICENSE pycharm-2019.1/jre64/legal/java.instrument/LICENSE --- pycharm-2018.3.5/jre64/legal/java.instrument/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.instrument/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.logging/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.logging/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.logging/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.logging/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.logging/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.logging/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.logging/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.logging/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.logging/LICENSE pycharm-2019.1/jre64/legal/java.logging/LICENSE --- pycharm-2018.3.5/jre64/legal/java.logging/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.logging/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.management/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.management/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.management/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.management/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.management/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.management/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.management/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.management/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.management/LICENSE pycharm-2019.1/jre64/legal/java.management/LICENSE --- pycharm-2018.3.5/jre64/legal/java.management/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.management/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.management.rmi/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.management.rmi/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.management.rmi/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.management.rmi/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.management.rmi/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.management.rmi/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.management.rmi/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.management.rmi/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.management.rmi/LICENSE pycharm-2019.1/jre64/legal/java.management.rmi/LICENSE --- pycharm-2018.3.5/jre64/legal/java.management.rmi/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.management.rmi/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.naming/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.naming/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.naming/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.naming/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.naming/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.naming/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.naming/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.naming/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.naming/LICENSE pycharm-2019.1/jre64/legal/java.naming/LICENSE --- pycharm-2018.3.5/jre64/legal/java.naming/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.naming/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.net.http/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.net.http/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.net.http/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.net.http/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.net.http/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.net.http/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.net.http/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.net.http/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.net.http/LICENSE pycharm-2019.1/jre64/legal/java.net.http/LICENSE --- pycharm-2018.3.5/jre64/legal/java.net.http/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.net.http/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.prefs/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.prefs/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.prefs/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.prefs/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.prefs/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.prefs/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.prefs/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.prefs/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.prefs/LICENSE pycharm-2019.1/jre64/legal/java.prefs/LICENSE --- pycharm-2018.3.5/jre64/legal/java.prefs/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.prefs/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.rmi/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.rmi/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.rmi/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.rmi/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.rmi/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.rmi/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.rmi/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.rmi/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.rmi/LICENSE pycharm-2019.1/jre64/legal/java.rmi/LICENSE --- pycharm-2018.3.5/jre64/legal/java.rmi/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.rmi/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.scripting/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.scripting/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.scripting/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.scripting/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.scripting/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.scripting/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.scripting/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.scripting/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.scripting/LICENSE pycharm-2019.1/jre64/legal/java.scripting/LICENSE --- pycharm-2018.3.5/jre64/legal/java.scripting/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.scripting/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.se/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.se/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.se/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.se/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.se/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.se/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.se/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.se/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.se/LICENSE pycharm-2019.1/jre64/legal/java.se/LICENSE --- pycharm-2018.3.5/jre64/legal/java.se/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.se/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.security.jgss/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.security.jgss/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.security.jgss/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.security.jgss/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.security.jgss/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.security.jgss/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.security.jgss/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.security.jgss/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.security.jgss/LICENSE pycharm-2019.1/jre64/legal/java.security.jgss/LICENSE --- pycharm-2018.3.5/jre64/legal/java.security.jgss/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.security.jgss/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.security.sasl/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.security.sasl/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.security.sasl/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.security.sasl/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.security.sasl/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.security.sasl/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.security.sasl/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.security.sasl/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.security.sasl/LICENSE pycharm-2019.1/jre64/legal/java.security.sasl/LICENSE --- pycharm-2018.3.5/jre64/legal/java.security.sasl/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.security.sasl/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.smartcardio/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.smartcardio/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.smartcardio/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.smartcardio/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.smartcardio/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.smartcardio/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.smartcardio/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.smartcardio/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.smartcardio/LICENSE pycharm-2019.1/jre64/legal/java.smartcardio/LICENSE --- pycharm-2018.3.5/jre64/legal/java.smartcardio/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.smartcardio/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.smartcardio/pcsclite.md pycharm-2019.1/jre64/legal/java.smartcardio/pcsclite.md --- pycharm-2018.3.5/jre64/legal/java.smartcardio/pcsclite.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.smartcardio/pcsclite.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,41 @@ +## PC/SC Lite for Suse Linux v1.1.1 + +### PC/SC Lite License +
    +
    +Copyright (c) 1999-2004 David Corcoran 
    +Copyright (c) 1999-2004 Ludovic Rousseau 
    +All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions
    +are met:
    +
    +1. Redistributions of source code must retain the above copyright
    +   notice, this list of conditions and the following disclaimer.
    +2. Redistributions in binary form must reproduce the above copyright
    +   notice, this list of conditions and the following disclaimer in the
    +   documentation and/or other materials provided with the distribution.
    +3. All advertising materials mentioning features or use of this software
    +   must display the following acknowledgement:
    +     This product includes software developed by:
    +      David Corcoran 
    +      http://www.linuxnet.com (MUSCLE)
    +4. The name of the author may not be used to endorse or promote products
    +   derived from this software without specific prior written permission.
    +
    +Changes to this license can be made only by the copyright author with
    +explicit written consent.
    +
    +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
    +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
    +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
    +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.sql/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.sql/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.sql/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.sql/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.sql/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.sql/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.sql/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.sql/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.sql/LICENSE pycharm-2019.1/jre64/legal/java.sql/LICENSE --- pycharm-2018.3.5/jre64/legal/java.sql/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.sql/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.sql.rowset/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.sql.rowset/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.sql.rowset/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.sql.rowset/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.sql.rowset/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.sql.rowset/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.sql.rowset/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.sql.rowset/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.sql.rowset/LICENSE pycharm-2019.1/jre64/legal/java.sql.rowset/LICENSE --- pycharm-2018.3.5/jre64/legal/java.sql.rowset/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.sql.rowset/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.transaction.xa/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.transaction.xa/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.transaction.xa/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.transaction.xa/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.transaction.xa/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.transaction.xa/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.transaction.xa/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.transaction.xa/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.transaction.xa/LICENSE pycharm-2019.1/jre64/legal/java.transaction.xa/LICENSE --- pycharm-2018.3.5/jre64/legal/java.transaction.xa/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.transaction.xa/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.xml/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.xml/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.xml/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.xml/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.xml/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.xml/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.xml/bcel.md pycharm-2019.1/jre64/legal/java.xml/bcel.md --- pycharm-2018.3.5/jre64/legal/java.xml/bcel.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml/bcel.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,222 @@ +## Apache Commons Byte Code Engineering Library (BCEL) Version 6.0 + +### Apache Commons BCEL Notice +
    +
    +    =========================================================================
    +    ==  NOTICE file corresponding to the section 4 d of                    ==
    +    ==  the Apache License, Version 2.0,                                   ==
    +    ==  in this case for the Apache Commons BCEL distribution.             ==
    +    =========================================================================
    +
    +   This product includes software developed by
    +   The Apache Software Foundation (http://www.apache.org/).
    +
    +
    + +### Apache 2.0 License +
    +
    +                              Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +    http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.xml/dom.md pycharm-2019.1/jre64/legal/java.xml/dom.md --- pycharm-2018.3.5/jre64/legal/java.xml/dom.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml/dom.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,62 @@ +## DOM Level 3 Core Specification v1.0 + +### W3C License +
    +
    +W3C SOFTWARE NOTICE AND LICENSE
    +
    +http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
    +
    +This work (and included software, documentation such as READMEs, or other
    +related items) is being provided by the copyright holders under the following
    +license. By obtaining, using and/or copying this work, you (the licensee)
    +agree that you have read, understood, and will comply with the following terms
    +and conditions.
    +
    +Permission to copy, modify, and distribute this software and its
    +documentation, with or without modification, for any purpose and without fee
    +or royalty is hereby granted, provided that you include the following on ALL
    +copies of the software and documentation or portions thereof, including
    +modifications:
    +
    +   1.The full text of this NOTICE in a location viewable to users of the
    +   redistributed or derivative work.
    +
    +   2.Any pre-existing intellectual property disclaimers, notices, or terms and
    +   conditions. If none exist, the W3C Software Short Notice should be included
    +   (hypertext is preferred, text is permitted) within the body of any
    +   redistributed or derivative code.
    +
    +   3.Notice of any changes or modifications to the files, including the date
    +   changes were made. (We recommend you provide URIs to the location from
    +   which the code is derived.)
    +
    +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
    +MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
    +LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
    +PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
    +THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
    +
    +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
    +OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
    +DOCUMENTATION.  The name and trademarks of copyright holders may NOT be used
    +in advertising or publicity pertaining to the software without specific,
    +written prior permission. Title to copyright in this software and any
    +associated documentation will at all times remain with copyright holders.
    +
    +____________________________________
    +
    +This formulation of W3C's notice and license became active on December 31
    +2002. This version removes the copyright ownership notice such that this
    +license can be used with materials other than those owned by the W3C, reflects
    +that ERCIM is now a host of the W3C, includes references to this specific
    +dated version of the license, and removes the ambiguous grant of "use".
    +Otherwise, this version is the same as the previous version and is written so
    +as to preserve the Free Software Foundation's assessment of GPL compatibility
    +and OSI's certification under the Open Source Definition. Please see our
    +Copyright FAQ for common questions about using materials from our site,
    +including specific terms and conditions for packages like libwww, Amaya, and
    +Jigsaw. Other questions about this notice can be directed to
    +site-policy@w3.org.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.xml/jcup.md pycharm-2019.1/jre64/legal/java.xml/jcup.md --- pycharm-2018.3.5/jre64/legal/java.xml/jcup.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml/jcup.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,24 @@ +## CUP Parser Generator for Java v 0.10k + +### CUP Parser Generator License +
    +
    +Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
    +
    +Permission to use, copy, modify, and distribute this software and its
    +documentation for any purpose and without fee is hereby granted, provided
    +that the above copyright notice appear in all copies and that both
    +the copyright notice and this permission notice and warranty disclaimer
    +appear in supporting documentation, and that the names of the authors or
    +their employers not be used in advertising or publicity pertaining to
    +distribution of the software without specific, written prior permission.
    +
    +The authors and their employers disclaim all warranties with regard to
    +this software, including all implied warranties of merchantability and
    +fitness. In no event shall the authors or their employers be liable for
    +any special, indirect or consequential damages or any damages whatsoever
    +resulting from loss of use, data or profits, whether in an action of
    +contract, negligence or other tortious action, arising out of or in
    +connection with the use or performance of this software.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.xml/LICENSE pycharm-2019.1/jre64/legal/java.xml/LICENSE --- pycharm-2018.3.5/jre64/legal/java.xml/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.xml/xalan.md pycharm-2019.1/jre64/legal/java.xml/xalan.md --- pycharm-2018.3.5/jre64/legal/java.xml/xalan.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml/xalan.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,234 @@ +## Apache Xalan v2.7.2 + +### Apache Xalan Notice +
    +
    +    ======================================================================================
    +    ==  NOTICE file corresponding to the section 4d of the Apache License, Version 2.0, ==
    +    ==  in this case for the Apache Xalan distribution.                                 ==
    +    ======================================================================================
    +
    +   This product includes software developed by
    +   The Apache Software Foundation (http://www.apache.org/).
    +
    +   Specifically, we only include the XSLTC portion of the source from the Xalan distribution. 
    +   The Xalan project has two processors: an interpretive one (Xalan Interpretive) and a 
    +   compiled one (The XSLT Compiler (XSLTC)). We *only* use the XSLTC part of Xalan; We use
    +   the source from the packages that are part of the XSLTC sources.
    +
    +   Portions of this software was originally based on the following:
    +
    +     - software copyright (c) 1999-2002, Lotus Development Corporation., http://www.lotus.com.
    +     - software copyright (c) 2001-2002, Sun Microsystems., http://www.sun.com.
    +     - software copyright (c) 2003, IBM Corporation., http://www.ibm.com.
    +     - voluntary contributions made by Ovidiu Predescu (ovidiu@cup.hp.com) on behalf of the
    +       Apache Software Foundation and was originally developed at Hewlett Packard Company.
    +
    +
    + +### Apache 2.0 License +
    +
    +                              Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +    http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.xml/xerces.md pycharm-2019.1/jre64/legal/java.xml/xerces.md --- pycharm-2018.3.5/jre64/legal/java.xml/xerces.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml/xerces.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,227 @@ +## Apache Xerces v2.11.0 + +### Apache Xerces Notice +
    +    =========================================================================
    +    == NOTICE file corresponding to section 4(d) of the Apache License, ==
    +    == Version 2.0, in this case for the Apache Xerces Java distribution. ==
    +    =========================================================================
    +    
    +    Apache Xerces Java
    +    Copyright 1999-2010 The Apache Software Foundation
    +    This product includes software developed at
    +    The Apache Software Foundation (http://www.apache.org/).
    +    Portions of this software were originally based on the following:
    +    - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
    +    - software copyright (c) 1999, Sun Microsystems., http://www.sun.com.
    +    - voluntary contributions made by Paul Eng on behalf of the
    +    Apache Software Foundation that were originally developed at iClick, Inc.,
    +    software copyright (c) 1999.
    +
    + +### Apache 2.0 License +
    +
    +                              Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +    http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/java.xml.crypto/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/java.xml.crypto/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/java.xml.crypto/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml.crypto/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/java.xml.crypto/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/java.xml.crypto/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/java.xml.crypto/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml.crypto/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/java.xml.crypto/LICENSE pycharm-2019.1/jre64/legal/java.xml.crypto/LICENSE --- pycharm-2018.3.5/jre64/legal/java.xml.crypto/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml.crypto/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/java.xml.crypto/santuario.md pycharm-2019.1/jre64/legal/java.xml.crypto/santuario.md --- pycharm-2018.3.5/jre64/legal/java.xml.crypto/santuario.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/java.xml.crypto/santuario.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,225 @@ +## Apache Santuario v2.1.1 + +### Apache Santuario Notice +
    +
    +  Apache Santuario - XML Security for Java
    +  Copyright 1999-2018 The Apache Software Foundation
    +
    +  This product includes software developed at
    +  The Apache Software Foundation (http://www.apache.org/).
    +
    +  It was originally based on software copyright (c) 2001, Institute for
    +  Data Communications Systems, .
    +
    +  The development of this software was partly funded by the European
    +  Commission in the  project in the ISIS Programme.
    +
    +
    + +### Apache 2.0 License +
    +
    +                              Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +    http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/jdk.accessibility/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.accessibility/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.accessibility/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.accessibility/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.accessibility/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.accessibility/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.accessibility/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.accessibility/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.accessibility/LICENSE pycharm-2019.1/jre64/legal/jdk.accessibility/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.accessibility/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.accessibility/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.aot/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.aot/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.aot/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.aot/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.aot/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.aot/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.aot/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.aot/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.aot/LICENSE pycharm-2019.1/jre64/legal/jdk.aot/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.aot/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.aot/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.attach/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.attach/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.attach/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.attach/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.attach/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.attach/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.attach/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.attach/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.attach/LICENSE pycharm-2019.1/jre64/legal/jdk.attach/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.attach/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.attach/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.charsets/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.charsets/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.charsets/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.charsets/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.charsets/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.charsets/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.charsets/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.charsets/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.charsets/LICENSE pycharm-2019.1/jre64/legal/jdk.charsets/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.charsets/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.charsets/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.compiler/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.compiler/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.compiler/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.compiler/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.compiler/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.compiler/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.compiler/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.compiler/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.compiler/LICENSE pycharm-2019.1/jre64/legal/jdk.compiler/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.compiler/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.compiler/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.crypto.cryptoki/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.crypto.cryptoki/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.crypto.cryptoki/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.crypto.cryptoki/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.crypto.cryptoki/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.crypto.cryptoki/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.crypto.cryptoki/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.crypto.cryptoki/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.crypto.cryptoki/LICENSE pycharm-2019.1/jre64/legal/jdk.crypto.cryptoki/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.crypto.cryptoki/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.crypto.cryptoki/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md pycharm-2019.1/jre64/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md --- pycharm-2018.3.5/jre64/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,20 @@ +## PKCS #11 Cryptographic Token Interface v2.20 Amendment 3 Header Files + +### PKCS #11 Cryptographic Token Interface License +
    +
    +License to copy and use this software is granted provided that it is
    +identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
    +(Cryptoki)" in all material mentioning or referencing this software.
    +
    +License is also granted to make and use derivative works provided that
    +such works are identified as "derived from the RSA Security Inc. PKCS #11
    +Cryptographic Token Interface (Cryptoki)" in all material mentioning or
    +referencing the derived work.
    +
    +RSA Security Inc. makes no representations concerning either the
    +merchantability of this software or the suitability of this software for
    +any particular purpose. It is provided "as is" without express or implied
    +warranty of any kind.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/jdk.crypto.cryptoki/pkcs11wrapper.md pycharm-2019.1/jre64/legal/jdk.crypto.cryptoki/pkcs11wrapper.md --- pycharm-2018.3.5/jre64/legal/jdk.crypto.cryptoki/pkcs11wrapper.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.crypto.cryptoki/pkcs11wrapper.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,46 @@ +## IAIK (Institute for Applied Information Processing and Communication) PKCS#11 wrapper files v1 + +### IAIK License +
    +
    +Copyright (c) 2002 Graz University of Technology. All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are met:
    +
    +1. Redistributions of source code must retain the above copyright notice, this
    +   list of conditions and the following disclaimer.
    +
    +2. Redistributions in binary form must reproduce the above copyright notice,
    +   this list of conditions and the following disclaimer in the documentation
    +   and/or other materials provided with the distribution.
    +
    +3. The end-user documentation included with the redistribution, if any, must
    +   include the following acknowledgment:
    +
    +   "This product includes software developed by IAIK of Graz University of
    +    Technology."
    +
    +   Alternately, this acknowledgment may appear in the software itself, if and
    +   wherever such third-party acknowledgments normally appear.
    +
    +4. The names "Graz University of Technology" and "IAIK of Graz University of
    +   Technology" must not be used to endorse or promote products derived from this
    +   software without prior written permission.
    +
    +5. Products derived from this software may not be called "IAIK PKCS Wrapper",
    +   nor may "IAIK" appear in their name, without prior written permission of
    +   Graz University of Technology.
    +
    +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
    +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
    +LICENSOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
    +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    +POSSIBILITY OF SUCH DAMAGE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.crypto.ec/ecc.md pycharm-2019.1/jre64/legal/jdk.crypto.ec/ecc.md --- pycharm-2018.3.5/jre64/legal/jdk.crypto.ec/ecc.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.crypto.ec/ecc.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,578 @@ +## Mozilla Elliptic Curve Cryptography (ECC) + +### Mozilla ECC Notice + +This notice is provided with respect to Elliptic Curve Cryptography, +which is included with JRE, JDK, and OpenJDK. + +You are receiving a [copy](http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/tip/src/jdk.crypto.ec/share/native/libsunec/impl) +of the Elliptic Curve Cryptography library in source +form with the JDK and OpenJDK source distributions, and as object code in +the JRE & JDK runtimes. +
    +In the case of the JRE & JDK runtimes, the terms of the Oracle license do
    +NOT apply to the Elliptic Curve Cryptography library; it is licensed under the
    +following license, separately from Oracle's JDK & JRE.  If you do not wish to
    +install the Elliptic Curve Cryptography library, you may delete the
    +Elliptic Curve Cryptography library:
    +   - On Solaris and Linux systems: delete $(JAVA_HOME)/lib/libsunec.so
    +   - On Mac OSX systems: delete $(JAVA_HOME)/lib/libsunec.dylib
    +   - On Windows systems: delete $(JAVA_HOME)\bin\sunec.dll
    +
    +
    + +### Written Offer for Source Code +
    +
    +For third party technology that you receive from Oracle in binary form 
    +which is licensed under an open source license that gives you the right
    +to receive the source code for that binary, you can obtain a copy of 
    +the applicable source code from this page:
    +    http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/tip/src/jdk.crypto.ec/share/native/libsunec/impl
    +
    +If the source code for the technology was not provided to you with the 
    +binary, you can also receive a copy of the source code on physical 
    +media by submitting a written request to:
    +
    +   Oracle America, Inc.
    +   Attn: Associate General Counsel,
    +   Development and Engineering Legal
    +   500 Oracle Parkway, 10th Floor
    +   Redwood Shores, CA 94065
    +
    +Or, you may send an email to Oracle using the form at:
    +
    +http://www.oracle.com/goto/opensourcecode/request
    +
    +Your request should include:
    +
    +  - The name of the component or binary file(s) for which you are requesting the source code
    +
    +  - The name and version number of the Oracle product containing the binary
    +
    +  - The date you received the Oracle product
    +
    +  - Your name
    +
    +  - Your company name (if applicable)
    +
    +  - Your return mailing address and email and
    +
    +  - A telephone number in the event we need to reach you.
    +
    +We may charge you a fee to cover the cost of physical media and processing. 
    +Your request must be sent (i) within three (3) years of the date you 
    +received the Oracle product that included the component or binary 
    +file(s) that are the subject of your request, or (ii) in the case of 
    +code licensed under the GPL v3, for as long as Oracle offers spare 
    +parts or customer support for that product model.
    +
    +
    + +### LGPL 2.1 +
    +
    +                  GNU LESSER GENERAL PUBLIC LICENSE
    +                       Version 2.1, February 1999
    +
    + Copyright (C) 1991, 1999 Free Software Foundation, Inc.
    + 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    + Everyone is permitted to copy and distribute verbatim copies
    + of this license document, but changing it is not allowed.
    +
    +[This is the first released version of the Lesser GPL.  It also counts
    + as the successor of the GNU Library Public License, version 2, hence
    + the version number 2.1.]
    +
    +                            Preamble
    +
    +  The licenses for most software are designed to take away your
    +freedom to share and change it.  By contrast, the GNU General Public
    +Licenses are intended to guarantee your freedom to share and change
    +free software--to make sure the software is free for all its users.
    +
    +  This license, the Lesser General Public License, applies to some
    +specially designated software packages--typically libraries--of the
    +Free Software Foundation and other authors who decide to use it.  You
    +can use it too, but we suggest you first think carefully about whether
    +this license or the ordinary General Public License is the better
    +strategy to use in any particular case, based on the explanations below.
    +
    +  When we speak of free software, we are referring to freedom of use,
    +not price.  Our General Public Licenses are designed to make sure that
    +you have the freedom to distribute copies of free software (and charge
    +for this service if you wish); that you receive source code or can get
    +it if you want it; that you can change the software and use pieces of
    +it in new free programs; and that you are informed that you can do
    +these things.
    +
    +  To protect your rights, we need to make restrictions that forbid
    +distributors to deny you these rights or to ask you to surrender these
    +rights.  These restrictions translate to certain responsibilities for
    +you if you distribute copies of the library or if you modify it.
    +
    +  For example, if you distribute copies of the library, whether gratis
    +or for a fee, you must give the recipients all the rights that we gave
    +you.  You must make sure that they, too, receive or can get the source
    +code.  If you link other code with the library, you must provide
    +complete object files to the recipients, so that they can relink them
    +with the library after making changes to the library and recompiling
    +it.  And you must show them these terms so they know their rights.
    +
    +  We protect your rights with a two-step method: (1) we copyright the
    +library, and (2) we offer you this license, which gives you legal
    +permission to copy, distribute and/or modify the library.
    +
    +  To protect each distributor, we want to make it very clear that
    +there is no warranty for the free library.  Also, if the library is
    +modified by someone else and passed on, the recipients should know
    +that what they have is not the original version, so that the original
    +author's reputation will not be affected by problems that might be
    +introduced by others.
    +
    +  Finally, software patents pose a constant threat to the existence of
    +any free program.  We wish to make sure that a company cannot
    +effectively restrict the users of a free program by obtaining a
    +restrictive license from a patent holder.  Therefore, we insist that
    +any patent license obtained for a version of the library must be
    +consistent with the full freedom of use specified in this license.
    +
    +  Most GNU software, including some libraries, is covered by the
    +ordinary GNU General Public License.  This license, the GNU Lesser
    +General Public License, applies to certain designated libraries, and
    +is quite different from the ordinary General Public License.  We use
    +this license for certain libraries in order to permit linking those
    +libraries into non-free programs.
    +
    +  When a program is linked with a library, whether statically or using
    +a shared library, the combination of the two is legally speaking a
    +combined work, a derivative of the original library.  The ordinary
    +General Public License therefore permits such linking only if the
    +entire combination fits its criteria of freedom.  The Lesser General
    +Public License permits more lax criteria for linking other code with
    +the library.
    +
    +  We call this license the "Lesser" General Public License because it
    +does Less to protect the user's freedom than the ordinary General
    +Public License.  It also provides other free software developers Less
    +of an advantage over competing non-free programs.  These disadvantages
    +are the reason we use the ordinary General Public License for many
    +libraries.  However, the Lesser license provides advantages in certain
    +special circumstances.
    +
    +  For example, on rare occasions, there may be a special need to
    +encourage the widest possible use of a certain library, so that it becomes
    +a de-facto standard.  To achieve this, non-free programs must be
    +allowed to use the library.  A more frequent case is that a free
    +library does the same job as widely used non-free libraries.  In this
    +case, there is little to gain by limiting the free library to free
    +software only, so we use the Lesser General Public License.
    +
    +  In other cases, permission to use a particular library in non-free
    +programs enables a greater number of people to use a large body of
    +free software.  For example, permission to use the GNU C Library in
    +non-free programs enables many more people to use the whole GNU
    +operating system, as well as its variant, the GNU/Linux operating
    +system.
    +
    +  Although the Lesser General Public License is Less protective of the
    +users' freedom, it does ensure that the user of a program that is
    +linked with the Library has the freedom and the wherewithal to run
    +that program using a modified version of the Library.
    +
    +  The precise terms and conditions for copying, distribution and
    +modification follow.  Pay close attention to the difference between a
    +"work based on the library" and a "work that uses the library".  The
    +former contains code derived from the library, whereas the latter must
    +be combined with the library in order to run.
    +
    +                  GNU LESSER GENERAL PUBLIC LICENSE
    +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    +
    +  0. This License Agreement applies to any software library or other
    +program which contains a notice placed by the copyright holder or
    +other authorized party saying it may be distributed under the terms of
    +this Lesser General Public License (also called "this License").
    +Each licensee is addressed as "you".
    +
    +  A "library" means a collection of software functions and/or data
    +prepared so as to be conveniently linked with application programs
    +(which use some of those functions and data) to form executables.
    +
    +  The "Library", below, refers to any such software library or work
    +which has been distributed under these terms.  A "work based on the
    +Library" means either the Library or any derivative work under
    +copyright law: that is to say, a work containing the Library or a
    +portion of it, either verbatim or with modifications and/or translated
    +straightforwardly into another language.  (Hereinafter, translation is
    +included without limitation in the term "modification".)
    +
    +  "Source code" for a work means the preferred form of the work for
    +making modifications to it.  For a library, complete source code means
    +all the source code for all modules it contains, plus any associated
    +interface definition files, plus the scripts used to control compilation
    +and installation of the library.
    +
    +  Activities other than copying, distribution and modification are not
    +covered by this License; they are outside its scope.  The act of
    +running a program using the Library is not restricted, and output from
    +such a program is covered only if its contents constitute a work based
    +on the Library (independent of the use of the Library in a tool for
    +writing it).  Whether that is true depends on what the Library does
    +and what the program that uses the Library does.
    +
    +  1. You may copy and distribute verbatim copies of the Library's
    +complete source code as you receive it, in any medium, provided that
    +you conspicuously and appropriately publish on each copy an
    +appropriate copyright notice and disclaimer of warranty; keep intact
    +all the notices that refer to this License and to the absence of any
    +warranty; and distribute a copy of this License along with the
    +Library.
    +
    +  You may charge a fee for the physical act of transferring a copy,
    +and you may at your option offer warranty protection in exchange for a
    +fee.
    +
    +  2. You may modify your copy or copies of the Library or any portion
    +of it, thus forming a work based on the Library, and copy and
    +distribute such modifications or work under the terms of Section 1
    +above, provided that you also meet all of these conditions:
    +
    +    a) The modified work must itself be a software library.
    +
    +    b) You must cause the files modified to carry prominent notices
    +    stating that you changed the files and the date of any change.
    +
    +    c) You must cause the whole of the work to be licensed at no
    +    charge to all third parties under the terms of this License.
    +
    +    d) If a facility in the modified Library refers to a function or a
    +    table of data to be supplied by an application program that uses
    +    the facility, other than as an argument passed when the facility
    +    is invoked, then you must make a good faith effort to ensure that,
    +    in the event an application does not supply such function or
    +    table, the facility still operates, and performs whatever part of
    +    its purpose remains meaningful.
    +
    +    (For example, a function in a library to compute square roots has
    +    a purpose that is entirely well-defined independent of the
    +    application.  Therefore, Subsection 2d requires that any
    +    application-supplied function or table used by this function must
    +    be optional: if the application does not supply it, the square
    +    root function must still compute square roots.)
    +
    +These requirements apply to the modified work as a whole.  If
    +identifiable sections of that work are not derived from the Library,
    +and can be reasonably considered independent and separate works in
    +themselves, then this License, and its terms, do not apply to those
    +sections when you distribute them as separate works.  But when you
    +distribute the same sections as part of a whole which is a work based
    +on the Library, the distribution of the whole must be on the terms of
    +this License, whose permissions for other licensees extend to the
    +entire whole, and thus to each and every part regardless of who wrote
    +it.
    +
    +Thus, it is not the intent of this section to claim rights or contest
    +your rights to work written entirely by you; rather, the intent is to
    +exercise the right to control the distribution of derivative or
    +collective works based on the Library.
    +
    +In addition, mere aggregation of another work not based on the Library
    +with the Library (or with a work based on the Library) on a volume of
    +a storage or distribution medium does not bring the other work under
    +the scope of this License.
    +
    +  3. You may opt to apply the terms of the ordinary GNU General Public
    +License instead of this License to a given copy of the Library.  To do
    +this, you must alter all the notices that refer to this License, so
    +that they refer to the ordinary GNU General Public License, version 2,
    +instead of to this License.  (If a newer version than version 2 of the
    +ordinary GNU General Public License has appeared, then you can specify
    +that version instead if you wish.)  Do not make any other change in
    +these notices.
    +
    +  Once this change is made in a given copy, it is irreversible for
    +that copy, so the ordinary GNU General Public License applies to all
    +subsequent copies and derivative works made from that copy.
    +
    +  This option is useful when you wish to copy part of the code of
    +the Library into a program that is not a library.
    +
    +  4. You may copy and distribute the Library (or a portion or
    +derivative of it, under Section 2) in object code or executable form
    +under the terms of Sections 1 and 2 above provided that you accompany
    +it with the complete corresponding machine-readable source code, which
    +must be distributed under the terms of Sections 1 and 2 above on a
    +medium customarily used for software interchange.
    +
    +  If distribution of object code is made by offering access to copy
    +from a designated place, then offering equivalent access to copy the
    +source code from the same place satisfies the requirement to
    +distribute the source code, even though third parties are not
    +compelled to copy the source along with the object code.
    +
    +  5. A program that contains no derivative of any portion of the
    +Library, but is designed to work with the Library by being compiled or
    +linked with it, is called a "work that uses the Library".  Such a
    +work, in isolation, is not a derivative work of the Library, and
    +therefore falls outside the scope of this License.
    +
    +  However, linking a "work that uses the Library" with the Library
    +creates an executable that is a derivative of the Library (because it
    +contains portions of the Library), rather than a "work that uses the
    +library".  The executable is therefore covered by this License.
    +Section 6 states terms for distribution of such executables.
    +
    +  When a "work that uses the Library" uses material from a header file
    +that is part of the Library, the object code for the work may be a
    +derivative work of the Library even though the source code is not.
    +Whether this is true is especially significant if the work can be
    +linked without the Library, or if the work is itself a library.  The
    +threshold for this to be true is not precisely defined by law.
    +
    +  If such an object file uses only numerical parameters, data
    +structure layouts and accessors, and small macros and small inline
    +functions (ten lines or less in length), then the use of the object
    +file is unrestricted, regardless of whether it is legally a derivative
    +work.  (Executables containing this object code plus portions of the
    +Library will still fall under Section 6.)
    +
    +  Otherwise, if the work is a derivative of the Library, you may
    +distribute the object code for the work under the terms of Section 6.
    +Any executables containing that work also fall under Section 6,
    +whether or not they are linked directly with the Library itself.
    +
    +  6. As an exception to the Sections above, you may also combine or
    +link a "work that uses the Library" with the Library to produce a
    +work containing portions of the Library, and distribute that work
    +under terms of your choice, provided that the terms permit
    +modification of the work for the customer's own use and reverse
    +engineering for debugging such modifications.
    +
    +  You must give prominent notice with each copy of the work that the
    +Library is used in it and that the Library and its use are covered by
    +this License.  You must supply a copy of this License.  If the work
    +during execution displays copyright notices, you must include the
    +copyright notice for the Library among them, as well as a reference
    +directing the user to the copy of this License.  Also, you must do one
    +of these things:
    +
    +    a) Accompany the work with the complete corresponding
    +    machine-readable source code for the Library including whatever
    +    changes were used in the work (which must be distributed under
    +    Sections 1 and 2 above); and, if the work is an executable linked
    +    with the Library, with the complete machine-readable "work that
    +    uses the Library", as object code and/or source code, so that the
    +    user can modify the Library and then relink to produce a modified
    +    executable containing the modified Library.  (It is understood
    +    that the user who changes the contents of definitions files in the
    +    Library will not necessarily be able to recompile the application
    +    to use the modified definitions.)
    +
    +    b) Use a suitable shared library mechanism for linking with the
    +    Library.  A suitable mechanism is one that (1) uses at run time a
    +    copy of the library already present on the user's computer system,
    +    rather than copying library functions into the executable, and (2)
    +    will operate properly with a modified version of the library, if
    +    the user installs one, as long as the modified version is
    +    interface-compatible with the version that the work was made with.
    +
    +    c) Accompany the work with a written offer, valid for at
    +    least three years, to give the same user the materials
    +    specified in Subsection 6a, above, for a charge no more
    +    than the cost of performing this distribution.
    +
    +    d) If distribution of the work is made by offering access to copy
    +    from a designated place, offer equivalent access to copy the above
    +    specified materials from the same place.
    +
    +    e) Verify that the user has already received a copy of these
    +    materials or that you have already sent this user a copy.
    +
    +  For an executable, the required form of the "work that uses the
    +Library" must include any data and utility programs needed for
    +reproducing the executable from it.  However, as a special exception,
    +the materials to be distributed need not include anything that is
    +normally distributed (in either source or binary form) with the major
    +components (compiler, kernel, and so on) of the operating system on
    +which the executable runs, unless that component itself accompanies
    +the executable.
    +
    +  It may happen that this requirement contradicts the license
    +restrictions of other proprietary libraries that do not normally
    +accompany the operating system.  Such a contradiction means you cannot
    +use both them and the Library together in an executable that you
    +distribute.
    +
    +  7. You may place library facilities that are a work based on the
    +Library side-by-side in a single library together with other library
    +facilities not covered by this License, and distribute such a combined
    +library, provided that the separate distribution of the work based on
    +the Library and of the other library facilities is otherwise
    +permitted, and provided that you do these two things:
    +
    +    a) Accompany the combined library with a copy of the same work
    +    based on the Library, uncombined with any other library
    +    facilities.  This must be distributed under the terms of the
    +    Sections above.
    +
    +    b) Give prominent notice with the combined library of the fact
    +    that part of it is a work based on the Library, and explaining
    +    where to find the accompanying uncombined form of the same work.
    +
    +  8. You may not copy, modify, sublicense, link with, or distribute
    +the Library except as expressly provided under this License.  Any
    +attempt otherwise to copy, modify, sublicense, link with, or
    +distribute the Library is void, and will automatically terminate your
    +rights under this License.  However, parties who have received copies,
    +or rights, from you under this License will not have their licenses
    +terminated so long as such parties remain in full compliance.
    +
    +  9. You are not required to accept this License, since you have not
    +signed it.  However, nothing else grants you permission to modify or
    +distribute the Library or its derivative works.  These actions are
    +prohibited by law if you do not accept this License.  Therefore, by
    +modifying or distributing the Library (or any work based on the
    +Library), you indicate your acceptance of this License to do so, and
    +all its terms and conditions for copying, distributing or modifying
    +the Library or works based on it.
    +
    +  10. Each time you redistribute the Library (or any work based on the
    +Library), the recipient automatically receives a license from the
    +original licensor to copy, distribute, link with or modify the Library
    +subject to these terms and conditions.  You may not impose any further
    +restrictions on the recipients' exercise of the rights granted herein.
    +You are not responsible for enforcing compliance by third parties with
    +this License.
    +
    +  11. If, as a consequence of a court judgment or allegation of patent
    +infringement or for any other reason (not limited to patent issues),
    +conditions are imposed on you (whether by court order, agreement or
    +otherwise) that contradict the conditions of this License, they do not
    +excuse you from the conditions of this License.  If you cannot
    +distribute so as to satisfy simultaneously your obligations under this
    +License and any other pertinent obligations, then as a consequence you
    +may not distribute the Library at all.  For example, if a patent
    +license would not permit royalty-free redistribution of the Library by
    +all those who receive copies directly or indirectly through you, then
    +the only way you could satisfy both it and this License would be to
    +refrain entirely from distribution of the Library.
    +
    +If any portion of this section is held invalid or unenforceable under any
    +particular circumstance, the balance of the section is intended to apply,
    +and the section as a whole is intended to apply in other circumstances.
    +
    +It is not the purpose of this section to induce you to infringe any
    +patents or other property right claims or to contest validity of any
    +such claims; this section has the sole purpose of protecting the
    +integrity of the free software distribution system which is
    +implemented by public license practices.  Many people have made
    +generous contributions to the wide range of software distributed
    +through that system in reliance on consistent application of that
    +system; it is up to the author/donor to decide if he or she is willing
    +to distribute software through any other system and a licensee cannot
    +impose that choice.
    +
    +This section is intended to make thoroughly clear what is believed to
    +be a consequence of the rest of this License.
    +
    +  12. If the distribution and/or use of the Library is restricted in
    +certain countries either by patents or by copyrighted interfaces, the
    +original copyright holder who places the Library under this License may add
    +an explicit geographical distribution limitation excluding those countries,
    +so that distribution is permitted only in or among countries not thus
    +excluded.  In such case, this License incorporates the limitation as if
    +written in the body of this License.
    +
    +  13. The Free Software Foundation may publish revised and/or new
    +versions of the Lesser General Public License from time to time.
    +Such new versions will be similar in spirit to the present version,
    +but may differ in detail to address new problems or concerns.
    +
    +Each version is given a distinguishing version number.  If the Library
    +specifies a version number of this License which applies to it and
    +"any later version", you have the option of following the terms and
    +conditions either of that version or of any later version published by
    +the Free Software Foundation.  If the Library does not specify a
    +license version number, you may choose any version ever published by
    +the Free Software Foundation.
    +
    +  14. If you wish to incorporate parts of the Library into other free
    +programs whose distribution conditions are incompatible with these,
    +write to the author to ask for permission.  For software which is
    +copyrighted by the Free Software Foundation, write to the Free
    +Software Foundation; we sometimes make exceptions for this.  Our
    +decision will be guided by the two goals of preserving the free status
    +of all derivatives of our free software and of promoting the sharing
    +and reuse of software generally.
    +
    +                            NO WARRANTY
    +
    +  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
    +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
    +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
    +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
    +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
    +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    +PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
    +LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
    +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
    +
    +  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
    +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
    +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
    +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
    +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
    +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
    +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
    +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
    +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
    +DAMAGES.
    +
    +                     END OF TERMS AND CONDITIONS
    +
    +           How to Apply These Terms to Your New Libraries
    +
    +  If you develop a new library, and you want it to be of the greatest
    +possible use to the public, we recommend making it free software that
    +everyone can redistribute and change.  You can do so by permitting
    +redistribution under these terms (or, alternatively, under the terms of the
    +ordinary General Public License).
    +
    +  To apply these terms, attach the following notices to the library.  It is
    +safest to attach them to the start of each source file to most effectively
    +convey the exclusion of warranty; and each file should have at least the
    +"copyright" line and a pointer to where the full notice is found.
    +
    +    
    +    Copyright (C)   
    +
    +    This library is free software; you can redistribute it and/or
    +    modify it under the terms of the GNU Lesser General Public
    +    License as published by the Free Software Foundation; either
    +    version 2.1 of the License, or (at your option) any later version.
    +
    +    This library is distributed in the hope that it will be useful,
    +    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +    Lesser General Public License for more details.
    +
    +    You should have received a copy of the GNU Lesser General Public
    +    License along with this library; if not, write to the Free Software
    +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    +
    +Also add information on how to contact you by electronic and paper mail.
    +
    +You should also get your employer (if you work as a programmer) or your
    +school, if any, to sign a "copyright disclaimer" for the library, if
    +necessary.  Here is a sample; alter the names:
    +
    +  Yoyodyne, Inc., hereby disclaims all copyright interest in the
    +  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
    +
    +  , 1 April 1990
    +  Ty Coon, President of Vice
    +
    +That's all there is to it!
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/jdk.crypto.ec/LICENSE pycharm-2019.1/jre64/legal/jdk.crypto.ec/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.crypto.ec/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.crypto.ec/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.dynalink/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.dynalink/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.dynalink/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.dynalink/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.dynalink/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.dynalink/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.dynalink/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.dynalink/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.dynalink/dynalink.md pycharm-2019.1/jre64/legal/jdk.dynalink/dynalink.md --- pycharm-2018.3.5/jre64/legal/jdk.dynalink/dynalink.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.dynalink/dynalink.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,32 @@ +## Dynalink v.5 + +### Dynalink License +
    +
    +Copyright (c) 2009-2013, Attila Szegedi
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are
    +met:
    +* Redistributions of source code must retain the above copyright
    +  notice, this list of conditions and the following disclaimer.
    +* Redistributions in binary form must reproduce the above copyright
    +  notice, this list of conditions and the following disclaimer in the
    +  documentation and/or other materials provided with the distribution.
    +* Neither the name of the copyright holder nor the names of
    +  contributors may be used to endorse or promote products derived from
    +  this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
    +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
    +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
    +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER
    +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
    +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
    +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/jdk.dynalink/LICENSE pycharm-2019.1/jre64/legal/jdk.dynalink/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.dynalink/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.dynalink/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.httpserver/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.httpserver/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.httpserver/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.httpserver/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.httpserver/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.httpserver/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.httpserver/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.httpserver/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.httpserver/LICENSE pycharm-2019.1/jre64/legal/jdk.httpserver/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.httpserver/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.httpserver/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.ed/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.internal.ed/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.internal.ed/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.ed/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.ed/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.internal.ed/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.internal.ed/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.ed/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.ed/LICENSE pycharm-2019.1/jre64/legal/jdk.internal.ed/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.internal.ed/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.ed/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.jvmstat/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.internal.jvmstat/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.internal.jvmstat/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.jvmstat/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.jvmstat/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.internal.jvmstat/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.internal.jvmstat/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.jvmstat/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.jvmstat/LICENSE pycharm-2019.1/jre64/legal/jdk.internal.jvmstat/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.internal.jvmstat/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.jvmstat/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.le/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.internal.le/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.internal.le/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.le/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.le/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.internal.le/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.internal.le/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.le/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.le/jline.md pycharm-2019.1/jre64/legal/jdk.internal.le/jline.md --- pycharm-2018.3.5/jre64/legal/jdk.internal.le/jline.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.le/jline.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,41 @@ +## JLine v2.14.6 + +### JLine License +
    +
    +Copyright (c) 2002-2016, the original author or authors.
    +All rights reserved.
    +
    +http://www.opensource.org/licenses/bsd-license.php
    +
    +Redistribution and use in source and binary forms, with or
    +without modification, are permitted provided that the following
    +conditions are met:
    +
    +Redistributions of source code must retain the above copyright
    +notice, this list of conditions and the following disclaimer.
    +
    +Redistributions in binary form must reproduce the above copyright
    +notice, this list of conditions and the following disclaimer
    +in the documentation and/or other materials provided with
    +the distribution.
    +
    +Neither the name of JLine nor the names of its contributors
    +may be used to endorse or promote products derived from this
    +software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
    +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
    +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
    +EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
    +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
    +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    +AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
    +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
    +OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.le/LICENSE pycharm-2019.1/jre64/legal/jdk.internal.le/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.internal.le/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.le/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.vm.ci/LICENSE pycharm-2019.1/jre64/legal/jdk.internal.vm.ci/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.internal.vm.ci/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.vm.ci/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler/LICENSE pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler.management/LICENSE pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler.management/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.internal.vm.compiler.management/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.internal.vm.compiler.management/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jdi/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.jdi/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.jdi/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jdi/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jdi/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.jdi/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.jdi/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jdi/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jdi/LICENSE pycharm-2019.1/jre64/legal/jdk.jdi/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.jdi/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jdi/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jdwp.agent/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.jdwp.agent/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.jdwp.agent/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jdwp.agent/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jdwp.agent/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.jdwp.agent/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.jdwp.agent/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jdwp.agent/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jdwp.agent/LICENSE pycharm-2019.1/jre64/legal/jdk.jdwp.agent/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.jdwp.agent/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jdwp.agent/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jfr/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.jfr/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.jfr/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jfr/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jfr/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.jfr/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.jfr/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jfr/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jfr/LICENSE pycharm-2019.1/jre64/legal/jdk.jfr/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.jfr/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jfr/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jsobject/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.jsobject/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.jsobject/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jsobject/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jsobject/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.jsobject/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.jsobject/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jsobject/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.jsobject/LICENSE pycharm-2019.1/jre64/legal/jdk.jsobject/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.jsobject/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.jsobject/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.localedata/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.localedata/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.localedata/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.localedata/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.localedata/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.localedata/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.localedata/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.localedata/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.localedata/cldr.md pycharm-2019.1/jre64/legal/jdk.localedata/cldr.md --- pycharm-2018.3.5/jre64/legal/jdk.localedata/cldr.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.localedata/cldr.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,66 @@ +## Unicode Common Local Data Repository (CLDR) v33 + +### CLDR License + +``` + +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE +Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +Unicode Data Files do not include PDF online code charts under the +directory http://www.unicode.org/Public/. + +Software includes any source code published in the Unicode Standard +or under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, +http://www.unicode.org/cldr/data/, +http://source.icu-project.org/repos/icu/, and +http://www.unicode.org/utility/trac/browser/. + +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2018 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +``` diff -Nru pycharm-2018.3.5/jre64/legal/jdk.localedata/LICENSE pycharm-2019.1/jre64/legal/jdk.localedata/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.localedata/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.localedata/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.localedata/thaidict.md pycharm-2019.1/jre64/legal/jdk.localedata/thaidict.md --- pycharm-2018.3.5/jre64/legal/jdk.localedata/thaidict.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.localedata/thaidict.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,31 @@ +## Thai Dictionary + +### Thai Dictionary License +
    +
    +Copyright (C) 1982 The Royal Institute, Thai Royal Government.
    +
    +Copyright (C) 1998 National Electronics and Computer Technology Center,
    +National Science and Technology Development Agency,
    +Ministry of Science Technology and Environment,
    +Thai Royal Government.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/jdk.management/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.management/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.management/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.management/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.management/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.management/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.management/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.management/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.management/LICENSE pycharm-2019.1/jre64/legal/jdk.management/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.management/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.management/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.management.agent/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.management.agent/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.management.agent/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.management.agent/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.management.agent/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.management.agent/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.management.agent/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.management.agent/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.management.agent/LICENSE pycharm-2019.1/jre64/legal/jdk.management.agent/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.management.agent/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.management.agent/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.management.jfr/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.management.jfr/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.management.jfr/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.management.jfr/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.management.jfr/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.management.jfr/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.management.jfr/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.management.jfr/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.management.jfr/LICENSE pycharm-2019.1/jre64/legal/jdk.management.jfr/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.management.jfr/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.management.jfr/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.naming.dns/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.naming.dns/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.naming.dns/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.naming.dns/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.naming.dns/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.naming.dns/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.naming.dns/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.naming.dns/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.naming.dns/LICENSE pycharm-2019.1/jre64/legal/jdk.naming.dns/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.naming.dns/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.naming.dns/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.naming.rmi/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.naming.rmi/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.naming.rmi/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.naming.rmi/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.naming.rmi/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.naming.rmi/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.naming.rmi/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.naming.rmi/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.naming.rmi/LICENSE pycharm-2019.1/jre64/legal/jdk.naming.rmi/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.naming.rmi/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.naming.rmi/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.net/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.net/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.net/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.net/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.net/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.net/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.net/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.net/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.net/LICENSE pycharm-2019.1/jre64/legal/jdk.net/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.net/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.net/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.pack/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.pack/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.pack/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.pack/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.pack/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.pack/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.pack/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.pack/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.pack/LICENSE pycharm-2019.1/jre64/legal/jdk.pack/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.pack/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.pack/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.scripting.nashorn/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.scripting.nashorn/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.scripting.nashorn/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.scripting.nashorn/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn/double-conversion.md pycharm-2019.1/jre64/legal/jdk.scripting.nashorn/double-conversion.md --- pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn/double-conversion.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.scripting.nashorn/double-conversion.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,36 @@ +## Double-conversion v1.1.5 + +### Double-conversion License + +https://raw.githubusercontent.com/google/double-conversion/master/LICENSE + +
    +
    +Copyright 2006-2011, the V8 project authors. All rights reserved.
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are
    +met:
    +
    +* Redistributions of source code must retain the above copyright
    +  notice, this list of conditions and the following disclaimer.
    +* Redistributions in binary form must reproduce the above
    +  copyright notice, this list of conditions and the following
    +  disclaimer in the documentation and/or other materials provided
    +  with the distribution.
    +* Neither the name of Google Inc. nor the names of its
    +  contributors may be used to endorse or promote products derived
    +  from this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn/joni.md pycharm-2019.1/jre64/legal/jdk.scripting.nashorn/joni.md --- pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn/joni.md 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.scripting.nashorn/joni.md 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,26 @@ +## JRuby Joni v1.1.9 + +### JRuby License +
    +
    +Jruby 2012
    +
    +Permission is hereby granted, free of charge, to any person obtaining a
    +copy of this software and associated documentation files (the "Software"),
    +to deal in the Software without restriction, including without limitation
    +the rights to use, copy, modify, merge, publish, distribute, sublicense,
    +and/or sell copies of the Software, and to permit persons to whom the
    +Software is furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included
    +in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
    +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    +OTHER DEALINGS IN THE SOFTWARE.
    +
    +
    diff -Nru pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn/LICENSE pycharm-2019.1/jre64/legal/jdk.scripting.nashorn/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.scripting.nashorn/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn.shell/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.scripting.nashorn.shell/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn.shell/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.scripting.nashorn.shell/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn.shell/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.scripting.nashorn.shell/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn.shell/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.scripting.nashorn.shell/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn.shell/LICENSE pycharm-2019.1/jre64/legal/jdk.scripting.nashorn.shell/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.scripting.nashorn.shell/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.scripting.nashorn.shell/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.sctp/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.sctp/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.sctp/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.sctp/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.sctp/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.sctp/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.sctp/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.sctp/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.sctp/LICENSE pycharm-2019.1/jre64/legal/jdk.sctp/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.sctp/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.sctp/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.security.auth/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.security.auth/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.security.auth/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.security.auth/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.security.auth/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.security.auth/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.security.auth/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.security.auth/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.security.auth/LICENSE pycharm-2019.1/jre64/legal/jdk.security.auth/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.security.auth/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.security.auth/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.security.jgss/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.security.jgss/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.security.jgss/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.security.jgss/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.security.jgss/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.security.jgss/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.security.jgss/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.security.jgss/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.security.jgss/LICENSE pycharm-2019.1/jre64/legal/jdk.security.jgss/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.security.jgss/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.security.jgss/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.unsupported/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.unsupported/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.unsupported/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.unsupported/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.unsupported/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.unsupported/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.unsupported/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.unsupported/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.unsupported/LICENSE pycharm-2019.1/jre64/legal/jdk.unsupported/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.unsupported/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.unsupported/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.xml.dom/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.xml.dom/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.xml.dom/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.xml.dom/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.xml.dom/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.xml.dom/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.xml.dom/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.xml.dom/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.xml.dom/LICENSE pycharm-2019.1/jre64/legal/jdk.xml.dom/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.xml.dom/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.xml.dom/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.zipfs/ADDITIONAL_LICENSE_INFO pycharm-2019.1/jre64/legal/jdk.zipfs/ADDITIONAL_LICENSE_INFO --- pycharm-2018.3.5/jre64/legal/jdk.zipfs/ADDITIONAL_LICENSE_INFO 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.zipfs/ADDITIONAL_LICENSE_INFO 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.zipfs/ASSEMBLY_EXCEPTION pycharm-2019.1/jre64/legal/jdk.zipfs/ASSEMBLY_EXCEPTION --- pycharm-2018.3.5/jre64/legal/jdk.zipfs/ASSEMBLY_EXCEPTION 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.zipfs/ASSEMBLY_EXCEPTION 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff -Nru pycharm-2018.3.5/jre64/legal/jdk.zipfs/LICENSE pycharm-2019.1/jre64/legal/jdk.zipfs/LICENSE --- pycharm-2018.3.5/jre64/legal/jdk.zipfs/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/legal/jdk.zipfs/LICENSE 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/jli/libjli.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/jli/libjli.so differ diff -Nru pycharm-2018.3.5/jre64/lib/amd64/jvm.cfg pycharm-2019.1/jre64/lib/amd64/jvm.cfg --- pycharm-2018.3.5/jre64/lib/amd64/jvm.cfg 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/amd64/jvm.cfg 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. Oracle designates this -# particular file as subject to the "Classpath" exception as provided -# by Oracle in the LICENSE file that accompanied this code. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# -# -# List of JVMs that can be used as an option to java, javac, etc. -# Order is important -- first in this list is the default JVM. -# NOTE that this both this file and its format are UNSUPPORTED and -# WILL GO AWAY in a future release. -# -# You may also select a JVM in an arbitrary location with the -# "-XXaltjvm=" option, but that too is unsupported -# and may not be available in a future release. -# --server KNOWN --client IGNORE Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libattach.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libattach.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libavplugin.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libavplugin.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libawt_headless.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libawt_headless.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libawt.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libawt.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libawt_xawt.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libawt_xawt.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libdecora_sse.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libdecora_sse.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libdt_socket.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libdt_socket.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libfontmanager.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libfontmanager.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libfxplugins.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libfxplugins.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libglass.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libglass.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libgstreamer-lite.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libgstreamer-lite.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libhprof.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libhprof.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libinstrument.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libinstrument.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libj2gss.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libj2gss.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libj2pcsc.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libj2pcsc.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libj2pkcs11.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libj2pkcs11.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjaas_unix.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjaas_unix.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjava_crw_demo.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjava_crw_demo.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjavafx_font_freetype.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjavafx_font_freetype.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjavafx_font_pango.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjavafx_font_pango.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjavafx_font.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjavafx_font.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjavafx_iio.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjavafx_iio.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjava.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjava.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjawt.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjawt.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjdwp.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjdwp.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjfxmedia.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjfxmedia.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjfxwebkit.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjfxwebkit.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjpeg.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjpeg.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjsdt.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjsdt.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjsig.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjsig.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjsoundalsa.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjsoundalsa.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libjsound.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libjsound.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/liblcms.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/liblcms.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libmanagement.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libmanagement.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libmlib_image.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libmlib_image.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libnet.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libnet.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libnio.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libnio.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libnpt.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libnpt.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libprism_common.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libprism_common.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libprism_es2.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libprism_es2.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libprism_sw.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libprism_sw.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libsaproc.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libsaproc.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libsctp.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libsctp.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libsplashscreen.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libsplashscreen.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libsunec.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libsunec.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libunpack.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libunpack.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libverify.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libverify.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/libzip.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/libzip.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/server/libjsig.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/server/libjsig.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/amd64/server/libjvm.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/amd64/server/libjvm.so differ diff -Nru pycharm-2018.3.5/jre64/lib/amd64/server/Xusage.txt pycharm-2019.1/jre64/lib/amd64/server/Xusage.txt --- pycharm-2018.3.5/jre64/lib/amd64/server/Xusage.txt 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/amd64/server/Xusage.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - -Xmixed mixed mode execution (default) - -Xint interpreted mode execution only - -Xbootclasspath: - set search path for bootstrap classes and resources - -Xbootclasspath/a: - append to end of bootstrap class path - -Xbootclasspath/p: - prepend in front of bootstrap class path - -Xnoclassgc disable class garbage collection - -Xincgc enable incremental garbage collection - -Xloggc: log GC status to a file with time stamps - -Xbatch disable background compilation - -Xms set initial Java heap size - -Xmx set maximum Java heap size - -Xss set java thread stack size - -Xprof output cpu profiling data - -Xfuture enable strictest checks, anticipating future default - -Xrs reduce use of OS signals by Java/VM (see documentation) - -Xcheck:jni perform additional checks for JNI functions - -Xshare:off do not attempt to use shared class data - -Xshare:auto use shared class data if possible (default) - -Xshare:on require using shared class data, otherwise fail. - -The -X options are non-standard and subject to change without notice. diff -Nru pycharm-2018.3.5/jre64/lib/calendars.properties pycharm-2019.1/jre64/lib/calendars.properties --- pycharm-2018.3.5/jre64/lib/calendars.properties 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/calendars.properties 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. Oracle designates this -# particular file as subject to the "Classpath" exception as provided -# by Oracle in the LICENSE file that accompanied this code. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# - -# -# Japanese imperial calendar -# -# Meiji since 1868-01-01 00:00:00 local time (Gregorian) -# Taisho since 1912-07-30 00:00:00 local time (Gregorian) -# Showa since 1926-12-25 00:00:00 local time (Gregorian) -# Heisei since 1989-01-08 00:00:00 local time (Gregorian) -calendar.japanese.type: LocalGregorianCalendar -calendar.japanese.eras: \ - name=Meiji,abbr=M,since=-3218832000000; \ - name=Taisho,abbr=T,since=-1812153600000; \ - name=Showa,abbr=S,since=-1357603200000; \ - name=Heisei,abbr=H,since=600220800000 - -# -# Taiwanese calendar -# Minguo since 1911-01-01 00:00:00 local time (Gregorian) -calendar.taiwanese.type: LocalGregorianCalendar -calendar.taiwanese.eras: \ - name=MinGuo,since=-1830384000000 - -# -# Thai Buddhist calendar -# Buddhist Era since -542-01-01 00:00:00 local time (Gregorian) -calendar.thai-buddhist.type: LocalGregorianCalendar -calendar.thai-buddhist.eras: \ - name=BuddhistEra,abbr=B.E.,since=-79302585600000 -calendar.thai-buddhist.year-boundary: \ - day1=4-1,since=-79302585600000; \ - day1=1-1,since=-915148800000 - -# -# Hijrah calendars -# -calendar.hijrah.Hijrah-umalqura: hijrah-config-umalqura.properties -calendar.hijrah.Hijrah-umalqura.type: islamic-umalqura Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/charsets.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/charsets.jar differ diff -Nru pycharm-2018.3.5/jre64/lib/classlist pycharm-2019.1/jre64/lib/classlist --- pycharm-2018.3.5/jre64/lib/classlist 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/classlist 2019-03-19 06:17:21.000000000 +0000 @@ -34,7 +34,6 @@ java/lang/ref/WeakReference java/lang/ref/FinalReference java/lang/ref/PhantomReference -sun/misc/Cleaner java/lang/ref/Finalizer java/lang/Thread java/lang/Runnable @@ -44,6 +43,7 @@ java/util/Hashtable java/util/Map java/util/Dictionary +java/lang/Module java/lang/reflect/AccessibleObject java/lang/reflect/Field java/lang/reflect/Member @@ -51,49 +51,60 @@ java/lang/reflect/Method java/lang/reflect/Executable java/lang/reflect/Constructor -sun/reflect/MagicAccessorImpl -sun/reflect/MethodAccessorImpl -sun/reflect/MethodAccessor -sun/reflect/ConstructorAccessorImpl -sun/reflect/ConstructorAccessor -sun/reflect/DelegatingClassLoader -sun/reflect/ConstantPool -sun/reflect/UnsafeStaticFieldAccessorImpl -sun/reflect/UnsafeFieldAccessorImpl -sun/reflect/FieldAccessorImpl -sun/reflect/FieldAccessor -sun/reflect/CallerSensitive +jdk/internal/reflect/MagicAccessorImpl +jdk/internal/reflect/MethodAccessorImpl +jdk/internal/reflect/MethodAccessor +jdk/internal/reflect/ConstructorAccessorImpl +jdk/internal/reflect/ConstructorAccessor +jdk/internal/reflect/DelegatingClassLoader +jdk/internal/reflect/ConstantPool +jdk/internal/reflect/UnsafeStaticFieldAccessorImpl +jdk/internal/reflect/UnsafeFieldAccessorImpl +jdk/internal/reflect/FieldAccessorImpl +jdk/internal/reflect/FieldAccessor +jdk/internal/reflect/CallerSensitive java/lang/annotation/Annotation java/lang/invoke/DirectMethodHandle java/lang/invoke/MethodHandle +java/lang/invoke/VarHandle java/lang/invoke/MemberName +java/lang/invoke/ResolvedMethodName java/lang/invoke/MethodHandleNatives java/lang/invoke/LambdaForm java/lang/invoke/MethodType java/lang/BootstrapMethodError java/lang/invoke/CallSite +java/lang/invoke/MethodHandleNatives$CallSiteContext java/lang/invoke/ConstantCallSite java/lang/invoke/MutableCallSite java/lang/invoke/VolatileCallSite +java/lang/AssertionStatusDirectives java/lang/StringBuffer java/lang/AbstractStringBuilder java/lang/Appendable java/lang/StringBuilder -sun/misc/Unsafe +jdk/internal/misc/Unsafe +jdk/internal/module/Modules java/io/ByteArrayInputStream java/io/InputStream java/io/Closeable java/lang/AutoCloseable -java/io/File -java/net/URLClassLoader java/net/URL java/util/jar/Manifest -sun/misc/Launcher -sun/misc/Launcher$AppClassLoader -sun/misc/Launcher$ExtClassLoader +jdk/internal/loader/ClassLoaders +jdk/internal/loader/ClassLoaders$AppClassLoader +jdk/internal/loader/BuiltinClassLoader +jdk/internal/loader/ClassLoaders$PlatformClassLoader java/security/CodeSource java/lang/StackTraceElement java/nio/Buffer +java/lang/StackWalker +java/lang/StackStreamFactory$AbstractStackWalker +java/lang/StackFrameInfo +java/lang/StackWalker$StackFrame +java/lang/LiveStackFrameInfo +java/lang/LiveStackFrame +java/util/concurrent/locks/AbstractOwnableSynchronizer java/lang/Boolean java/lang/Character java/lang/Float @@ -108,113 +119,101 @@ java/io/ObjectStreamField java/lang/String$CaseInsensitiveComparator java/util/Comparator -java/lang/RuntimePermission -java/security/BasicPermission -java/security/Permission -java/security/Guard java/security/AccessController -java/lang/reflect/ReflectPermission -sun/reflect/ReflectionFactory$GetReflectionFactoryAction -java/security/PrivilegedAction -java/security/cert/Certificate -java/util/Vector -java/util/List +java/util/Set java/util/Collection java/lang/Iterable -java/util/RandomAccess -java/util/AbstractList +java/util/ImmutableCollections$Set12 +java/util/ImmutableCollections$AbstractImmutableSet +java/util/ImmutableCollections$AbstractImmutableCollection java/util/AbstractCollection -java/util/Stack -sun/reflect/ReflectionFactory -java/lang/ref/Reference$Lock +java/util/Objects +jdk/internal/reflect/ReflectionFactory$GetReflectionFactoryAction +java/security/PrivilegedAction +java/security/cert/Certificate +java/util/HashSet +java/util/AbstractSet +java/util/HashMap +java/util/AbstractMap +java/util/concurrent/ConcurrentHashMap +java/util/concurrent/ConcurrentMap +java/lang/Runtime +java/util/concurrent/ConcurrentHashMap$Segment +java/util/concurrent/locks/ReentrantLock +java/util/concurrent/locks/Lock +java/util/concurrent/ConcurrentHashMap$CounterCell +java/util/concurrent/ConcurrentHashMap$Node +java/util/Map$Entry +java/util/concurrent/locks/LockSupport +java/util/concurrent/ConcurrentHashMap$ReservationNode +jdk/internal/reflect/ReflectionFactory java/lang/ref/Reference$ReferenceHandler +jdk/internal/ref/Cleaner java/lang/ref/ReferenceQueue java/lang/ref/ReferenceQueue$Null java/lang/ref/ReferenceQueue$Lock +java/lang/ref/Reference$1 +jdk/internal/misc/JavaLangRefAccess +jdk/internal/misc/SharedSecrets java/lang/ref/Finalizer$FinalizerThread -sun/misc/VM -java/util/Hashtable$Entry -java/util/Map$Entry -java/lang/Math +java/lang/StringLatin1 +jdk/internal/misc/VM java/nio/charset/Charset sun/nio/cs/StandardCharsets -sun/nio/cs/FastCharsetProvider java/nio/charset/spi/CharsetProvider -sun/nio/cs/StandardCharsets$Aliases -sun/util/PreHashedMap -java/util/AbstractMap -sun/nio/cs/StandardCharsets$Classes -sun/nio/cs/StandardCharsets$Cache java/lang/ThreadLocal java/util/concurrent/atomic/AtomicInteger -java/lang/NoSuchMethodError -java/lang/IncompatibleClassChangeError -java/util/ArrayList -java/util/Collections -java/util/Collections$EmptySet -java/util/AbstractSet -java/util/Set -java/util/Collections$EmptyList -java/util/Collections$EmptyMap -java/util/Collections$UnmodifiableRandomAccessList -java/util/Collections$UnmodifiableList -java/util/Collections$UnmodifiableCollection -sun/reflect/Reflection -java/util/HashMap -java/util/HashMap$Node -java/lang/Class$3 -java/lang/Class$ReflectionData -java/lang/Class$Atomic -sun/reflect/generics/repository/ClassRepository -sun/reflect/generics/repository/GenericDeclRepository -sun/reflect/generics/repository/AbstractRepository -java/lang/Class$AnnotationData -sun/reflect/annotation/AnnotationType -java/lang/ClassValue$ClassValueMap -java/util/WeakHashMap -java/lang/reflect/Modifier -java/lang/reflect/ReflectAccess -sun/reflect/LangReflectAccess java/util/Arrays +java/lang/Math +sun/nio/cs/StandardCharsets$Aliases +sun/util/PreHashedMap +sun/nio/cs/StandardCharsets$Cache sun/nio/cs/UTF_8 sun/nio/cs/Unicode sun/nio/cs/HistoricallyNamedCharset -java/lang/Class$1 -sun/reflect/ReflectionFactory$1 -sun/reflect/NativeConstructorAccessorImpl -sun/reflect/DelegatingConstructorAccessorImpl +sun/nio/cs/ISO_8859_1 +sun/nio/cs/US_ASCII +java/nio/charset/StandardCharsets +sun/nio/cs/UTF_16BE +sun/nio/cs/UTF_16LE +sun/nio/cs/UTF_16 java/lang/StringCoding +java/lang/StringCoding$1 java/lang/ThreadLocal$ThreadLocalMap java/lang/ThreadLocal$ThreadLocalMap$Entry -java/lang/StringCoding$StringDecoder -sun/nio/cs/UTF_8$Decoder -sun/nio/cs/ArrayDecoder -java/nio/charset/CharsetDecoder -java/nio/charset/CodingErrorAction -java/util/Hashtable$EntrySet +jdk/internal/misc/TerminatingThreadLocal +java/lang/StringCoding$Result +java/util/Properties$EntrySet +java/util/concurrent/ConcurrentHashMap$EntrySetView +java/util/concurrent/ConcurrentHashMap$CollectionView +java/util/Collections +java/util/Collections$EmptySet +java/util/Collections$EmptyList +java/util/RandomAccess +java/util/AbstractList +java/util/List +java/util/Collections$EmptyMap java/util/Collections$SynchronizedSet java/util/Collections$SynchronizedCollection -java/util/Objects -java/util/Hashtable$Enumerator -java/util/Enumeration +java/lang/reflect/Array +java/util/concurrent/ConcurrentHashMap$EntryIterator java/util/Iterator -java/lang/Runtime -sun/misc/Version +java/util/concurrent/ConcurrentHashMap$BaseIterator +java/util/concurrent/ConcurrentHashMap$Traverser +java/util/concurrent/ConcurrentHashMap$MapEntry +java/util/ImmutableCollections$MapN +java/util/ImmutableCollections$AbstractImmutableMap +jdk/internal/util/StaticProperty +java/lang/VersionProps java/io/FileInputStream java/io/FileDescriptor java/io/FileDescriptor$1 -sun/misc/JavaIOFileDescriptorAccess -sun/misc/SharedSecrets +jdk/internal/misc/JavaIOFileDescriptorAccess java/io/FileOutputStream java/io/OutputStream java/io/Flushable java/io/BufferedInputStream java/io/FilterInputStream -java/util/concurrent/atomic/AtomicReferenceFieldUpdater -java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl -java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 -java/security/PrivilegedExceptionAction -sun/reflect/misc/ReflectUtil java/io/PrintStream java/io/FilterOutputStream java/io/BufferedOutputStream @@ -222,176 +221,328 @@ java/io/Writer sun/nio/cs/StreamEncoder sun/security/action/GetPropertyAction -sun/nio/cs/UTF_8$Encoder -sun/nio/cs/ArrayEncoder +sun/nio/cs/US_ASCII$Encoder java/nio/charset/CharsetEncoder +java/nio/charset/CodingErrorAction +sun/nio/cs/Surrogate$Parser +sun/nio/cs/Surrogate +java/nio/charset/CoderResult java/nio/ByteBuffer +java/nio/Buffer$1 +jdk/internal/misc/JavaNioAccess java/nio/HeapByteBuffer -java/nio/Bits java/nio/ByteOrder -java/nio/Bits$1 -sun/misc/JavaNioAccess java/io/BufferedWriter +java/lang/Terminator +java/lang/Terminator$1 +jdk/internal/misc/Signal$Handler +jdk/internal/misc/Signal +java/util/Hashtable$Entry +jdk/internal/misc/Signal$NativeHandler +java/lang/Integer$IntegerCache +jdk/internal/misc/OSEnvironment +java/lang/System$2 +jdk/internal/misc/JavaLangAccess +java/lang/IllegalArgumentException +java/lang/invoke/MethodHandleStatics +java/lang/CharacterData +java/lang/CharacterDataLatin1 +jdk/internal/module/ModuleBootstrap +java/lang/module/ModuleDescriptor +java/lang/module/ModuleDescriptor$1 +jdk/internal/misc/JavaLangModuleAccess +java/io/File java/io/DefaultFileSystem java/io/UnixFileSystem java/io/FileSystem java/io/ExpiringCache java/io/ExpiringCache$1 java/util/LinkedHashMap -java/io/File$PathStatus +jdk/internal/module/ModulePatcher +jdk/internal/module/SystemModuleFinders +java/net/URI +java/net/URI$1 +jdk/internal/misc/JavaNetUriAccess +jdk/internal/module/SystemModulesMap +jdk/internal/module/SystemModules$all +jdk/internal/module/SystemModules +jdk/internal/module/Builder +java/lang/module/ModuleDescriptor$Requires +java/util/ImmutableCollections +java/util/ImmutableCollections$SetN +java/lang/module/ModuleDescriptor$Exports +java/lang/module/ModuleDescriptor$Opens +java/lang/module/ModuleDescriptor$Provides +java/util/ImmutableCollections$List12 +java/util/ImmutableCollections$AbstractImmutableList +java/lang/module/ModuleDescriptor$Version +java/util/ArrayList +java/lang/module/ModuleDescriptor$Modifier java/lang/Enum -java/nio/file/Path -java/nio/file/Watchable -java/lang/StringCoding$StringEncoder -java/lang/ClassLoader$3 -java/io/ExpiringCache$Entry -java/util/LinkedHashMap$Entry -java/lang/ClassLoader$NativeLibrary -java/lang/Terminator -java/lang/Terminator$1 -sun/misc/SignalHandler -sun/misc/Signal -sun/misc/NativeSignalHandler -java/lang/Integer$IntegerCache -sun/misc/OSEnvironment -java/lang/System$2 -sun/misc/JavaLangAccess -java/lang/IllegalArgumentException -java/lang/Compiler -java/lang/Compiler$1 -sun/misc/Launcher$Factory -java/net/URLStreamHandlerFactory -sun/security/util/Debug +java/lang/module/ModuleDescriptor$Requires$Modifier +jdk/internal/module/ModuleTarget +jdk/internal/module/ModuleHashes +jdk/internal/module/ModuleResolution +java/lang/module/ModuleReference +jdk/internal/module/SystemModuleFinders$2 +java/util/function/Supplier +jdk/internal/module/ModuleReferenceImpl +java/util/KeyValueHolder +jdk/internal/module/SystemModuleFinders$SystemModuleFinder +java/lang/module/ModuleFinder +jdk/internal/module/ModuleBootstrap$Counters +java/util/Optional +jdk/internal/loader/BootLoader +jdk/internal/module/ServicesCatalog +jdk/internal/loader/ClassLoaderValue +jdk/internal/loader/AbstractClassLoaderValue +jdk/internal/loader/ClassLoaders$BootClassLoader +jdk/internal/reflect/Reflection +java/util/HashMap$Node java/lang/ClassLoader$ParallelLoaders +java/util/WeakHashMap java/util/WeakHashMap$Entry java/util/Collections$SetFromMap java/util/WeakHashMap$KeySet -java/net/URLClassLoader$7 -sun/misc/JavaNetAccess -java/util/StringTokenizer -sun/misc/Launcher$ExtClassLoader$1 -sun/misc/MetaIndex -java/io/BufferedReader -java/io/Reader -java/lang/Readable -java/io/FileReader -java/io/InputStreamReader -sun/nio/cs/StreamDecoder -java/nio/CharBuffer -java/nio/HeapCharBuffer -java/nio/charset/CoderResult -java/nio/charset/CoderResult$1 -java/nio/charset/CoderResult$Cache -java/nio/charset/CoderResult$2 -java/lang/reflect/Array -java/io/FileInputStream$1 +java/util/Vector +java/security/ProtectionDomain$JavaSecurityAccessImpl +jdk/internal/misc/JavaSecurityAccess +java/security/ProtectionDomain$Key +java/security/Principal +jdk/internal/loader/URLClassPath +java/net/URL$DefaultFactory +java/net/URLStreamHandlerFactory +java/net/URL$3 +jdk/internal/misc/JavaNetURLAccess +java/io/File$PathStatus +java/io/ExpiringCache$Entry +java/util/LinkedHashMap$Entry sun/net/www/ParseUtil -java/util/BitSet +sun/net/www/protocol/file/Handler +java/net/URLStreamHandler +java/lang/Class$ReflectionData +java/lang/Class$Atomic +java/lang/reflect/Modifier +java/lang/reflect/ReflectAccess +jdk/internal/reflect/LangReflectAccess +java/lang/Class$1 +jdk/internal/reflect/NativeConstructorAccessorImpl +jdk/internal/reflect/DelegatingConstructorAccessorImpl +java/util/ArrayDeque +java/util/Deque +java/util/Queue +jdk/internal/util/Preconditions +jdk/internal/loader/BuiltinClassLoader$LoadedModule +sun/net/www/protocol/jrt/Handler +java/util/ImmutableCollections$SetN$SetNIterator +java/lang/module/Configuration +java/lang/module/ResolvedModule +java/util/AbstractMap$1 +java/util/AbstractMap$1$1 +java/util/ImmutableCollections$MapN$1 +java/util/ImmutableCollections$MapN$MapNIterator +java/util/ImmutableCollections$Set12$1 +jdk/internal/module/ModuleLoaderMap +java/util/HashMap$TreeNode +jdk/internal/module/ModuleLoaderMap$Mapper +java/util/function/Function +java/lang/ModuleLayer +java/util/ImmutableCollections$ListN +java/util/ImmutableCollections$ListItr +java/util/ListIterator +java/util/ArrayList$Itr +java/util/Collections$UnmodifiableSet +java/util/Collections$UnmodifiableCollection +java/util/Collections$UnmodifiableCollection$1 +java/util/concurrent/CopyOnWriteArrayList +jdk/internal/module/ServicesCatalog$ServiceProvider +java/util/HashMap$KeySet +java/util/HashMap$KeyIterator +java/util/HashMap$HashIterator +java/lang/ModuleLayer$Controller +jdk/internal/module/IllegalAccessLogger$Mode +jdk/internal/module/IllegalAccessLogger$Builder +java/util/HashMap$Values +java/util/HashMap$ValueIterator +jdk/internal/module/ModuleBootstrap$2 +java/util/Collections$UnmodifiableMap +jdk/internal/module/IllegalAccessLogger +sun/launcher/LauncherHelper +sun/net/util/URLUtil java/util/Locale java/util/Locale$Cache sun/util/locale/LocaleObjectCache -java/util/concurrent/ConcurrentHashMap -java/util/concurrent/ConcurrentMap -java/util/concurrent/ConcurrentHashMap$Segment -java/util/concurrent/locks/ReentrantLock -java/util/concurrent/locks/Lock -java/util/concurrent/ConcurrentHashMap$Node -java/util/concurrent/ConcurrentHashMap$CounterCell -java/util/concurrent/ConcurrentHashMap$KeySetView -java/util/concurrent/ConcurrentHashMap$CollectionView -java/util/concurrent/ConcurrentHashMap$ValuesView -java/util/concurrent/ConcurrentHashMap$EntrySetView sun/util/locale/BaseLocale sun/util/locale/BaseLocale$Cache sun/util/locale/BaseLocale$Key sun/util/locale/LocaleObjectCache$CacheEntry -java/util/Locale$LocaleKey sun/util/locale/LocaleUtils -java/lang/CharacterData -java/lang/CharacterDataLatin1 -java/net/Parts -sun/net/www/protocol/file/Handler -java/net/URLStreamHandler -java/util/HashMap$TreeNode -java/security/ProtectionDomain$JavaSecurityAccessImpl -sun/misc/JavaSecurityAccess -java/security/ProtectionDomain$2 -sun/misc/JavaSecurityProtectionDomainAccess -java/security/ProtectionDomain$Key -java/security/Principal -java/util/HashSet -sun/misc/URLClassPath -sun/net/www/protocol/jar/Handler -sun/misc/Launcher$AppClassLoader$1 -java/lang/SystemClassLoaderAction -java/lang/invoke/MethodHandleImpl -java/lang/invoke/MethodHandleImpl$1 -java/lang/invoke/MethodHandleImpl$2 -java/util/function/Function -java/lang/invoke/MethodHandleImpl$3 -java/lang/invoke/MethodHandleImpl$4 -java/lang/ClassValue -java/lang/ClassValue$Entry -java/lang/ClassValue$Identity -java/lang/ClassValue$Version -java/lang/invoke/MemberName$Factory -java/lang/invoke/MethodHandleStatics -java/lang/invoke/MethodHandleStatics$1 -sun/misc/PostVMInitHook -sun/usagetracker/UsageTrackerClient -java/util/concurrent/atomic/AtomicBoolean -sun/usagetracker/UsageTrackerClient$1 -sun/usagetracker/UsageTrackerClient$4 -sun/usagetracker/UsageTrackerClient$3 -java/io/FileOutputStream$1 -sun/launcher/LauncherHelper -java/net/URLClassLoader$1 -sun/net/util/URLUtil -sun/misc/URLClassPath$3 -sun/misc/URLClassPath$JarLoader -sun/misc/URLClassPath$Loader +sun/util/locale/InternalLocaleBuilder +sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar +jdk/internal/loader/URLClassPath$3 +java/security/PrivilegedExceptionAction +jdk/internal/loader/URLClassPath$JarLoader +jdk/internal/loader/URLClassPath$Loader java/util/zip/ZipFile java/util/zip/ZipConstants java/util/zip/ZipFile$1 -sun/misc/JavaUtilZipFileAccess -sun/misc/URLClassPath$JarLoader$1 -sun/misc/FileURLMapper +jdk/internal/misc/JavaUtilZipFileAccess +sun/net/www/protocol/jar/Handler +jdk/internal/loader/URLClassPath$JarLoader$1 +jdk/internal/loader/FileURLMapper java/util/jar/JarFile java/util/jar/JavaUtilJarAccessImpl -sun/misc/JavaUtilJarAccess -java/nio/charset/StandardCharsets -sun/nio/cs/US_ASCII -sun/nio/cs/ISO_8859_1 -sun/nio/cs/UTF_16BE -sun/nio/cs/UTF_16LE -sun/nio/cs/UTF_16 -java/util/ArrayDeque -java/util/Deque -java/util/Queue +jdk/internal/misc/JavaUtilJarAccess +java/lang/Runtime$Version java/util/zip/ZipCoder -sun/misc/PerfCounter -sun/misc/Perf$GetPerfAction -sun/misc/Perf -sun/misc/PerfCounter$CoreCounters +java/util/zip/ZipCoder$UTF8 +java/util/zip/ZipFile$CleanableResource +jdk/internal/ref/CleanerFactory +jdk/internal/ref/CleanerFactory$1 +java/util/concurrent/ThreadFactory +java/lang/ref/Cleaner +java/lang/ref/Cleaner$1 +jdk/internal/ref/CleanerImpl +jdk/internal/ref/CleanerImpl$PhantomCleanableRef +jdk/internal/ref/PhantomCleanable +java/lang/ref/Cleaner$Cleanable +jdk/internal/ref/CleanerImpl$WeakCleanableRef +jdk/internal/ref/WeakCleanable +jdk/internal/ref/CleanerImpl$SoftCleanableRef +jdk/internal/ref/SoftCleanable +jdk/internal/ref/CleanerImpl$CleanerCleanable +jdk/internal/ref/CleanerFactory$1$1 +jdk/internal/misc/InnocuousThread +jdk/internal/misc/InnocuousThread$3 +jdk/internal/misc/InnocuousThread$2 +java/util/zip/ZipFile$Source +java/util/zip/ZipFile$Source$Key +java/nio/file/FileSystems +sun/nio/fs/DefaultFileSystemProvider +sun/nio/fs/LinuxFileSystemProvider +sun/nio/fs/UnixFileSystemProvider +sun/nio/fs/AbstractFileSystemProvider +java/nio/file/spi/FileSystemProvider +java/nio/file/StandardOpenOption +java/nio/file/OpenOption +sun/nio/fs/LinuxFileSystem +sun/nio/fs/UnixFileSystem +java/nio/file/FileSystem +sun/nio/fs/UnixPath +java/nio/file/Path +java/nio/file/Watchable +sun/nio/fs/Util +sun/nio/fs/UnixNativeDispatcher +sun/nio/fs/UnixNativeDispatcher$1 +java/lang/ClassLoader$2 +java/lang/ClassLoader$NativeLibrary +java/util/ArrayDeque$DeqIterator +java/util/concurrent/ConcurrentHashMap$ValuesView +java/util/concurrent/ConcurrentHashMap$ValueIterator +java/util/Enumeration +sun/nio/fs/UnixFileAttributes +java/nio/file/attribute/PosixFileAttributes +java/nio/file/attribute/BasicFileAttributes +sun/nio/fs/UnixFileStoreAttributes +sun/nio/fs/UnixMountEntry +java/nio/CharBuffer +java/lang/Readable +java/nio/HeapCharBuffer +java/nio/file/FileSystems$DefaultFileSystemHolder +java/nio/file/FileSystems$DefaultFileSystemHolder$1 +java/net/URI$Parser +java/nio/file/LinkOption +java/nio/file/CopyOption +java/nio/file/Files +java/nio/file/attribute/DosFileAttributes +java/nio/file/attribute/BasicFileAttributeView +java/nio/file/attribute/FileAttributeView +java/nio/file/attribute/AttributeView +java/nio/file/attribute/DosFileAttributeView +java/nio/file/attribute/UserDefinedFileAttributeView +sun/nio/fs/UnixFileAttributeViews +sun/nio/fs/UnixFileAttributeViews$Basic +sun/nio/fs/AbstractBasicFileAttributeView +sun/nio/fs/DynamicFileAttributeView +sun/nio/fs/NativeBuffers +sun/nio/fs/NativeBuffers$1 +jdk/internal/misc/TerminatingThreadLocal$1 +java/util/IdentityHashMap +java/util/IdentityHashMap$KeySet +sun/nio/fs/NativeBuffer +sun/nio/fs/NativeBuffer$Deallocator +sun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes +java/util/concurrent/TimeUnit +java/nio/file/attribute/FileTime +java/io/RandomAccessFile +java/io/DataOutput +java/io/DataInput +java/io/RandomAccessFile$2 +jdk/internal/misc/JavaIORandomAccessFileAccess +java/util/concurrent/atomic/AtomicBoolean +java/lang/invoke/MethodHandles +java/lang/invoke/MemberName$Factory +java/lang/reflect/ReflectPermission +java/security/BasicPermission +java/security/Permission +java/security/Guard +java/lang/invoke/MethodHandles$Lookup +sun/invoke/util/VerifyAccess +java/lang/NoSuchFieldException +java/lang/invoke/VarHandles +java/lang/invoke/VarHandleInts$FieldInstanceReadWrite +java/lang/invoke/VarHandleInts$FieldInstanceReadOnly +java/lang/invoke/VarHandle$1 +jdk/internal/util/Preconditions$1 +java/util/function/BiFunction +java/lang/invoke/VarHandleGuards +java/lang/invoke/VarForm +java/lang/invoke/VarHandle$AccessType +java/lang/Void +java/lang/invoke/VarHandle$AccessMode +java/lang/invoke/MethodType$ConcurrentWeakInternSet +java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +java/lang/invoke/MethodTypeForm +sun/invoke/util/Wrapper +sun/invoke/util/Wrapper$Format +java/io/FileCleanable +java/util/zip/ZipFile$Source$End +java/util/zip/ZipUtils +jdk/internal/perf/PerfCounter +jdk/internal/perf/Perf$GetPerfAction +jdk/internal/perf/Perf +jdk/internal/perf/PerfCounter$CoreCounters sun/nio/ch/DirectBuffer java/nio/DirectByteBuffer java/nio/MappedByteBuffer +java/nio/Bits +java/util/concurrent/atomic/AtomicLong +java/nio/Bits$1 +jdk/internal/misc/JavaNioAccess$BufferPool java/nio/DirectLongBufferU java/nio/LongBuffer -sun/misc/JarIndex -sun/misc/ExtensionDependency -java/util/zip/ZipEntry +jdk/internal/util/jar/JarIndex +java/util/jar/JarFile$1 java/util/jar/JarFile$JarFileEntry java/util/jar/JarEntry +java/util/zip/ZipEntry java/util/zip/ZipFile$ZipFileInputStream -java/util/zip/Inflater -java/util/zip/ZStreamRef java/util/zip/ZipFile$ZipFileInflaterInputStream java/util/zip/InflaterInputStream -sun/misc/IOUtils -sun/misc/URLClassPath$JarLoader$2 -sun/misc/Resource +java/util/zip/Inflater +java/util/zip/Inflater$InflaterZStreamRef +java/util/zip/ZipFile$InflaterCleanupAction +jdk/internal/loader/URLClassPath$JarLoader$2 +jdk/internal/loader/Resource +java/util/jar/Attributes +java/util/jar/Manifest$FastInputStream +java/util/jar/Attributes$Name +java/lang/Package +java/lang/NamedPackage +java/lang/Package$VersionInfo sun/nio/ByteBuffered +java/security/SecureClassLoader$CodeSourceKey +java/security/SecureClassLoader$1 java/security/Permissions java/security/PermissionCollection sun/net/www/protocol/file/FileURLConnection @@ -400,131 +551,82 @@ sun/net/www/MessageHeader java/io/FilePermission java/io/FilePermission$1 +jdk/internal/misc/JavaIOFilePermissionAccess +sun/security/util/FilePermCompat +java/security/Permissions$1 java/io/FilePermissionCollection +java/io/FilePermissionCollection$1 java/security/AllPermission java/security/UnresolvedPermission +java/lang/RuntimePermission java/security/BasicPermissionCollection -javax/swing/JLabel -javax/swing/SwingConstants -javax/accessibility/Accessible -javax/swing/JComponent -javax/swing/TransferHandler$HasGetTransferHandler -java/awt/Container -java/awt/Component -java/awt/image/ImageObserver -java/awt/MenuContainer -sun/launcher/LauncherHelper$FXHelper -java/lang/Class$MethodArray -java/lang/InterruptedException -javax/swing/JFrame -javax/swing/WindowConstants -javax/swing/RootPaneContainer -java/awt/Frame -java/awt/Window -java/util/concurrent/ConcurrentHashMap$ForwardingNode -java/awt/Graphics -java/lang/Void -sun/util/logging/PlatformLogger -sun/util/logging/PlatformLogger$Level -sun/util/logging/PlatformLogger$1 -sun/util/logging/PlatformLogger$DefaultLoggerProxy -sun/util/logging/PlatformLogger$LoggerProxy -sun/util/logging/PlatformLogger$JavaLoggerProxy -sun/util/logging/LoggingSupport -sun/util/logging/LoggingSupport$1 -java/util/logging/LoggingProxyImpl -sun/util/logging/LoggingProxy -sun/reflect/UnsafeFieldAccessorFactory -sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl -sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl -java/util/HashMap$EntrySet -java/util/HashMap$EntryIterator -java/util/HashMap$HashIterator -sun/util/logging/LoggingSupport$2 -java/util/Date -sun/util/calendar/CalendarSystem -sun/util/calendar/Gregorian -sun/util/calendar/BaseCalendar -sun/util/calendar/AbstractCalendar -java/awt/Component$AWTTreeLock -java/awt/Toolkit -java/awt/Toolkit$4 -sun/awt/AWTAccessor$ToolkitAccessor -sun/awt/AWTAccessor -java/awt/Toolkit$5 -sun/util/CoreResourceBundleControl -java/util/ResourceBundle$Control -java/util/Arrays$ArrayList -java/util/ResourceBundle$Control$CandidateListCache -java/util/ResourceBundle -java/util/ResourceBundle$1 -java/util/spi/ResourceBundleControlProvider -java/util/ServiceLoader -java/util/ServiceLoader$LazyIterator -java/util/ServiceLoader$1 -java/util/LinkedHashMap$LinkedEntrySet -java/util/LinkedHashMap$LinkedEntryIterator -java/util/LinkedHashMap$LinkedHashIterator -sun/misc/Launcher$BootClassPathHolder -sun/misc/Launcher$BootClassPathHolder$1 -sun/misc/URLClassPath$2 -java/lang/ClassLoader$2 -sun/misc/URLClassPath$1 -java/net/URLClassLoader$3 -sun/misc/CompoundEnumeration -java/io/FileNotFoundException -java/io/IOException -java/security/PrivilegedActionException -java/net/URLClassLoader$3$1 -java/util/ResourceBundle$RBClassLoader -java/util/ResourceBundle$RBClassLoader$1 -java/util/ResourceBundle$CacheKey -java/util/ResourceBundle$LoaderReference -java/util/ResourceBundle$CacheKeyReference -java/util/ResourceBundle$SingleFormatControl -java/util/LinkedList -java/util/AbstractSequentialList -java/util/LinkedList$Node -sun/awt/resources/awt -java/util/ListResourceBundle -java/awt/Toolkit$3 -java/awt/GraphicsEnvironment -java/lang/invoke/LambdaMetafactory -java/lang/invoke/MethodHandles$Lookup -java/lang/invoke/MethodType$ConcurrentWeakInternSet -java/lang/invoke/MethodTypeForm -java/lang/invoke/Invokers -java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry -java/lang/invoke/MethodHandles -sun/invoke/util/Wrapper -sun/invoke/util/Wrapper$Format -java/lang/Byte$ByteCache -java/lang/Short$ShortCache -java/lang/Character$CharacterCache -java/lang/Long$LongCache -sun/invoke/util/VerifyAccess +java/security/SecureClassLoader$DebugHolder +sun/security/util/Debug +java/time/temporal/TemporalAccessor +java/lang/PublicMethods$MethodList +java/lang/PublicMethods$Key +java/util/logging/Logger +java/util/logging/Handler +java/util/logging/Level +java/util/logging/Level$KnownLevel +java/util/logging/Logger$LoggerBundle +java/util/logging/Logger$ConfigurationData +java/util/logging/LogManager +java/util/logging/LogManager$1 +java/util/logging/LogManager$SystemLoggerContext +java/util/logging/LogManager$LoggerContext +java/util/logging/LogManager$LogNode +java/util/concurrent/locks/ReentrantLock$NonfairSync +java/util/concurrent/locks/ReentrantLock$Sync +java/util/concurrent/locks/AbstractQueuedSynchronizer +java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +java/lang/invoke/VarHandleObjects$FieldInstanceReadWrite +java/lang/invoke/VarHandleObjects$FieldInstanceReadOnly +java/util/Collections$SynchronizedMap +java/util/logging/LogManager$Cleaner +java/lang/ApplicationShutdownHooks +java/lang/ApplicationShutdownHooks$1 +java/lang/Shutdown +java/lang/Shutdown$Lock +java/util/logging/LoggingPermission +java/util/logging/LogManager$LoggingProviderAccess +sun/util/logging/internal/LoggingProviderImpl$LogManagerAccess +java/security/AccessController$1 +sun/security/util/SecurityConstants +java/net/NetPermission +java/security/SecurityPermission +java/net/SocketPermission +sun/security/action/GetBooleanAction +java/security/AllPermissionCollection +sun/util/logging/internal/LoggingProviderImpl +jdk/internal/logger/DefaultLoggerFinder +java/lang/System$LoggerFinder +java/lang/invoke/VarHandle$AccessDescriptor +java/util/logging/LogManager$2 +java/util/logging/LogManager$RootLogger +java/nio/file/Paths +java/util/logging/LogManager$LoggerWeakRef +java/lang/invoke/StringConcatFactory +java/lang/invoke/LambdaForm$NamedFunction +java/lang/invoke/DirectMethodHandle$Holder sun/invoke/util/ValueConversions +java/lang/invoke/MethodHandleImpl +java/lang/invoke/Invokers +java/lang/invoke/StringConcatFactory$Strategy +java/lang/invoke/LambdaForm$Kind java/lang/NoSuchMethodException java/lang/invoke/LambdaForm$BasicType java/lang/invoke/LambdaForm$Name -java/lang/invoke/LambdaForm$NamedFunction -java/lang/invoke/SimpleMethodHandle -java/lang/invoke/BoundMethodHandle -java/lang/invoke/BoundMethodHandle$SpeciesData -java/lang/invoke/BoundMethodHandle$Factory -java/lang/invoke/BoundMethodHandle$Species_L -java/util/HashMap$Values -java/util/HashMap$ValueIterator -sun/invoke/util/BytecodeDescriptor -java/lang/invoke/DirectMethodHandle$Lazy -java/lang/InstantiationException -java/util/Collections$UnmodifiableCollection$1 -java/util/AbstractList$Itr +java/lang/invoke/LambdaForm$Holder +java/lang/invoke/MethodHandleImpl$Intrinsic java/lang/invoke/InvokerBytecodeGenerator +java/lang/invoke/InvokerBytecodeGenerator$2 +java/lang/StringUTF16 jdk/internal/org/objectweb/asm/ClassWriter jdk/internal/org/objectweb/asm/ClassVisitor jdk/internal/org/objectweb/asm/ByteVector jdk/internal/org/objectweb/asm/Item +sun/invoke/util/BytecodeDescriptor jdk/internal/org/objectweb/asm/MethodWriter jdk/internal/org/objectweb/asm/MethodVisitor jdk/internal/org/objectweb/asm/Type @@ -532,2028 +634,511 @@ jdk/internal/org/objectweb/asm/Frame jdk/internal/org/objectweb/asm/AnnotationWriter jdk/internal/org/objectweb/asm/AnnotationVisitor -java/lang/invoke/MethodHandleImpl$Intrinsic -java/lang/invoke/InvokerBytecodeGenerator$2 +java/lang/invoke/InvokerBytecodeGenerator$CpPatch sun/invoke/util/VerifyType sun/invoke/empty/Empty -java/lang/NoSuchFieldException -java/lang/invoke/InvokerBytecodeGenerator$CpPatch -java/lang/invoke/DirectMethodHandle$Accessor -java/util/ArrayList$Itr -java/util/RandomAccessSubList -java/util/SubList -java/util/SubList$1 -java/util/ListIterator -java/util/AbstractList$ListItr +sun/reflect/misc/ReflectUtil +java/lang/invoke/MethodHandleImpl$1 +jdk/internal/misc/JavaLangInvokeAccess java/lang/invoke/MethodHandleImpl$AsVarargsCollector java/lang/invoke/DelegatingMethodHandle -java/lang/invoke/WrongMethodTypeException -java/lang/invoke/MethodHandleImpl$Lazy -java/lang/invoke/MethodHandleImpl$IntrinsicMethodHandle -java/lang/NoSuchFieldError -java/lang/IllegalAccessException +java/lang/invoke/DelegatingMethodHandle$Holder +java/lang/invoke/SimpleMethodHandle +java/lang/invoke/BoundMethodHandle +java/lang/invoke/Invokers$Holder +java/lang/NoSuchMethodError +java/lang/IncompatibleClassChangeError +java/lang/invoke/BootstrapMethodInvoker +java/lang/invoke/StringConcatFactory$1 +java/lang/invoke/StringConcatFactory$Mode +java/lang/invoke/StringConcatFactory$Recipe +java/lang/invoke/StringConcatFactory$RecipeElement +java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy +java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$1 +java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$2 +java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$3 +java/lang/StringConcatHelper +java/lang/invoke/StringConcatFactory$Stringifiers +java/lang/invoke/StringConcatFactory$Stringifiers$StringifierMost +java/lang/ClassValue +java/lang/ClassValue$Entry +java/lang/ClassValue$Identity +java/lang/ClassValue$Version +java/lang/invoke/StringConcatFactory$Stringifiers$StringifierAny +java/lang/ClassValue$ClassValueMap +java/util/Arrays$ArrayList +java/lang/invoke/BoundMethodHandle$Specializer +java/lang/invoke/ClassSpecializer +java/lang/invoke/ClassSpecializer$1 +java/lang/invoke/BoundMethodHandle$SpeciesData +java/lang/invoke/ClassSpecializer$SpeciesData +java/util/ImmutableCollections$SubList +java/lang/invoke/BoundMethodHandle$Specializer$Factory +java/lang/invoke/ClassSpecializer$Factory +java/lang/invoke/BoundMethodHandle$Species_L +java/lang/invoke/DirectMethodHandle$1 +java/lang/invoke/DirectMethodHandle$Accessor +java/util/Arrays$ArrayItr java/lang/invoke/LambdaFormEditor -java/lang/invoke/LambdaFormEditor$Transform$Kind java/lang/invoke/LambdaFormEditor$Transform java/lang/invoke/LambdaFormBuffer jdk/internal/org/objectweb/asm/FieldWriter jdk/internal/org/objectweb/asm/FieldVisitor +java/lang/invoke/ClassSpecializer$Factory$1Var +java/util/Collections$UnmodifiableRandomAccessList +java/util/Collections$UnmodifiableList +java/lang/Byte$ByteCache +java/lang/invoke/MethodHandles$1 +sun/invoke/util/ValueConversions$WrapperCache +java/util/logging/LogManager$VisitedLoggers +java/util/function/Predicate +java/util/logging/LogManager$LoggerContext$1 +java/util/concurrent/ConcurrentHashMap$KeySetView +java/util/Collections$3 +java/util/concurrent/ConcurrentHashMap$KeyIterator +java/util/Properties$LineReader +java/util/Hashtable$Enumerator +java/lang/invoke/LambdaMetafactory java/lang/invoke/InnerClassLambdaMetafactory java/lang/invoke/AbstractValidatingLambdaMetafactory -java/util/PropertyPermission -java/security/AccessController$1 -sun/security/util/SecurityConstants -java/net/NetPermission -java/security/SecurityPermission -java/net/SocketPermission -sun/security/action/GetBooleanAction -java/security/AllPermissionCollection java/lang/invoke/InfoFromMemberName java/lang/invoke/MethodHandleInfo java/lang/invoke/InnerClassLambdaMetafactory$ForwardingMethodGenerator java/lang/invoke/TypeConvertingMethodAdapter java/lang/invoke/InnerClassLambdaMetafactory$1 -java/lang/ProcessEnvironment -java/lang/ProcessEnvironment$Variable -java/lang/ProcessEnvironment$ExternalData -java/lang/ProcessEnvironment$Value -java/lang/ProcessEnvironment$StringEnvironment -java/util/Collections$UnmodifiableMap -java/awt/Toolkit$1 -java/awt/event/KeyEvent -java/awt/event/InputEvent -java/awt/event/ComponentEvent -java/awt/AWTEvent -java/util/EventObject -java/awt/AWTEvent$1 -sun/awt/AWTAccessor$AWTEventAccessor -java/awt/event/NativeLibLoader -java/awt/event/NativeLibLoader$1 -java/awt/event/InputEvent$1 -sun/awt/AWTAccessor$InputEventAccessor -java/awt/event/KeyEvent$1 -sun/awt/AWTAccessor$KeyEventAccessor -java/awt/Component$1 -sun/awt/AWTAccessor$ComponentAccessor -java/awt/Component$DummyRequestFocusController -sun/awt/RequestFocusController -java/awt/LayoutManager -java/awt/LightweightDispatcher -java/awt/event/AWTEventListener -java/util/EventListener -java/awt/Dimension -java/awt/geom/Dimension2D -java/awt/Container$1 -sun/awt/AWTAccessor$ContainerAccessor -javax/swing/JComponent$1 -java/awt/ComponentOrientation -java/awt/Component$3 -sun/awt/AppContext -java/util/IdentityHashMap -java/util/Collections$SynchronizedMap -sun/awt/AppContext$GetAppContextLock -sun/awt/AppContext$6 -sun/misc/JavaAWTAccess -sun/awt/AppContext$3 -sun/awt/AppContext$2 -sun/awt/SunToolkit -sun/awt/WindowClosingSupport -sun/awt/WindowClosingListener -sun/awt/ComponentFactory -sun/awt/InputMethodSupport -sun/awt/KeyboardFocusManagerPeerProvider -java/util/concurrent/locks/ReentrantLock$NonfairSync -java/util/concurrent/locks/ReentrantLock$Sync -java/util/concurrent/locks/AbstractQueuedSynchronizer -java/util/concurrent/locks/AbstractOwnableSynchronizer -java/util/concurrent/locks/AbstractQueuedSynchronizer$Node -java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject -java/util/concurrent/locks/Condition -sun/misc/SoftCache -sun/awt/AppContext$State -sun/awt/AppContext$1 -java/awt/EventQueue -java/awt/EventQueue$1 -java/awt/EventQueue$2 -sun/awt/AWTAccessor$EventQueueAccessor -java/awt/Queue -sun/awt/MostRecentKeyValue -sun/awt/PostEventQueue -javax/swing/event/EventListenerList -javax/swing/SwingUtilities -javax/swing/RepaintManager -javax/swing/RepaintManager$DisplayChangedHandler -sun/awt/DisplayChangedListener -javax/swing/RepaintManager$1 -sun/swing/SwingAccessor$RepaintManagerAccessor -sun/swing/SwingAccessor -sun/awt/X11GraphicsEnvironment -sun/java2d/SunGraphicsEnvironment -sun/awt/X11GraphicsEnvironment$1 -sun/awt/X11/XErrorHandlerUtil -sun/awt/X11/XlibWrapper -sun/java2d/UnixSurfaceManagerFactory -sun/java2d/SurfaceManagerFactory -sun/awt/SunDisplayChanger -sun/java2d/SunGraphicsEnvironment$1 -sun/misc/FloatingDecimal -sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer -sun/misc/FloatingDecimal$BinaryToASCIIConverter -sun/misc/FloatingDecimal$BinaryToASCIIBuffer -sun/misc/FloatingDecimal$1 -sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer -sun/misc/FloatingDecimal$ASCIIToBinaryConverter -java/lang/NumberFormatException -java/lang/StringIndexOutOfBoundsException -java/lang/IndexOutOfBoundsException -java/awt/Font -java/awt/Font$FontAccessImpl -sun/font/FontAccess -java/awt/geom/AffineTransform -sun/font/AttributeValues -sun/font/EAttribute -java/text/AttributedCharacterIterator$Attribute -java/lang/Class$4 -sun/reflect/NativeMethodAccessorImpl -sun/reflect/DelegatingMethodAccessorImpl -java/awt/font/TextAttribute -java/awt/Toolkit$2 -sun/awt/X11/XToolkit -sun/awt/UNIXToolkit -java/util/TreeMap -java/util/NavigableMap -java/util/SortedMap -java/awt/GraphicsDevice -sun/awt/X11GraphicsDevice -sun/awt/X11GraphicsConfig -sun/awt/image/SurfaceManager$ProxiedGraphicsConfig -java/awt/GraphicsConfiguration -java/awt/ImageCapabilities -sun/java2d/x11/X11SurfaceData -sun/java2d/x11/XSurfaceData -sun/java2d/SurfaceData -java/awt/Transparency -sun/java2d/DisposerTarget -sun/java2d/StateTrackable -sun/java2d/Surface -sun/java2d/InvalidPipeException -java/lang/IllegalStateException -sun/java2d/NullSurfaceData -sun/java2d/StateTrackable$State -sun/java2d/loops/SurfaceType -sun/awt/image/PixelConverter -sun/awt/image/PixelConverter$Xrgb -sun/awt/image/PixelConverter$Argb -sun/awt/image/PixelConverter$ArgbPre -sun/awt/image/PixelConverter$Xbgr -sun/awt/image/PixelConverter$Rgba -sun/awt/image/PixelConverter$RgbaPre -sun/awt/image/PixelConverter$Ushort565Rgb -sun/awt/image/PixelConverter$Ushort555Rgb -sun/awt/image/PixelConverter$Ushort555Rgbx -sun/awt/image/PixelConverter$Ushort4444Argb -sun/awt/image/PixelConverter$ByteGray -sun/awt/image/PixelConverter$UshortGray -sun/awt/image/PixelConverter$Rgbx -sun/awt/image/PixelConverter$Bgrx -sun/awt/image/PixelConverter$ArgbBm -java/awt/image/ColorModel -java/awt/image/ColorModel$1 -java/awt/image/DirectColorModel -java/awt/image/PackedColorModel -java/awt/color/ColorSpace -java/awt/color/ICC_Profile -sun/java2d/cmm/ProfileDeferralInfo -sun/java2d/cmm/ProfileDeferralMgr -java/awt/color/ICC_ProfileRGB -java/awt/color/ICC_Profile$1 -sun/java2d/cmm/ProfileActivator -java/awt/color/ICC_ColorSpace -sun/java2d/StateTrackableDelegate -sun/java2d/StateTrackableDelegate$2 -sun/java2d/pipe/NullPipe -sun/java2d/pipe/PixelDrawPipe -sun/java2d/pipe/PixelFillPipe -sun/java2d/pipe/ShapeDrawPipe -sun/java2d/pipe/TextPipe -sun/java2d/pipe/DrawImagePipe -java/awt/image/IndexColorModel -sun/java2d/pipe/LoopPipe -sun/java2d/pipe/ParallelogramPipe -sun/java2d/pipe/LoopBasedPipe -sun/java2d/pipe/RenderingEngine -sun/java2d/pipe/RenderingEngine$1 -sun/dc/DuctusRenderingEngine -sun/java2d/pipe/OutlineTextRenderer -sun/java2d/pipe/SolidTextRenderer -sun/java2d/pipe/GlyphListLoopPipe -sun/java2d/pipe/GlyphListPipe -sun/java2d/pipe/AATextRenderer -sun/java2d/pipe/LCDTextRenderer -sun/java2d/pipe/AlphaColorPipe -sun/java2d/pipe/CompositePipe -sun/java2d/SurfaceData$PixelToShapeLoopConverter -sun/java2d/pipe/PixelToShapeConverter -sun/java2d/SurfaceData$PixelToPgramLoopConverter -sun/java2d/pipe/PixelToParallelogramConverter -sun/java2d/pipe/TextRenderer -sun/java2d/pipe/SpanClipRenderer -sun/java2d/pipe/Region -sun/java2d/pipe/RegionIterator -sun/java2d/pipe/Region$ImmutableRegion -sun/java2d/pipe/AAShapePipe -sun/java2d/pipe/AlphaPaintPipe -sun/java2d/pipe/SpanShapeRenderer$Composite -sun/java2d/pipe/SpanShapeRenderer -sun/java2d/pipe/GeneralCompositePipe -sun/java2d/pipe/DrawImage -sun/java2d/loops/RenderCache -sun/java2d/loops/RenderCache$Entry -sun/java2d/loops/XORComposite -java/awt/Composite -sun/font/X11TextRenderer -sun/java2d/loops/GraphicsPrimitive -sun/java2d/x11/X11PMBlitLoops -sun/java2d/loops/Blit -sun/java2d/loops/GraphicsPrimitiveMgr -sun/java2d/loops/CompositeType -sun/java2d/SunGraphics2D -sun/awt/ConstrainableGraphics -sun/java2d/DestSurfaceProvider -java/awt/Graphics2D -java/awt/Color -java/awt/Paint -java/awt/AlphaComposite -java/awt/geom/Path2D -java/awt/Shape -java/awt/geom/Path2D$Float -sun/awt/SunHints -sun/java2d/loops/BlitBg -sun/java2d/loops/ScaledBlit -sun/java2d/loops/FillRect -sun/java2d/loops/FillSpans -sun/java2d/loops/FillParallelogram -sun/java2d/loops/DrawParallelogram -sun/java2d/loops/DrawLine -sun/java2d/loops/DrawRect -sun/java2d/loops/DrawPolygons -sun/java2d/loops/DrawPath -sun/java2d/loops/FillPath -sun/java2d/loops/MaskBlit -sun/java2d/loops/MaskFill -sun/java2d/loops/DrawGlyphList -sun/java2d/loops/DrawGlyphListAA -sun/java2d/loops/DrawGlyphListLCD -sun/java2d/loops/TransformHelper -java/awt/BasicStroke -java/awt/Stroke -sun/misc/PerformanceLogger -sun/misc/PerformanceLogger$TimeData -sun/java2d/pipe/ValidatePipe -sun/awt/SunHints$Key -java/awt/RenderingHints$Key -sun/awt/SunHints$Value -sun/awt/SunHints$LCDContrastKey -sun/java2d/loops/CustomComponent -sun/java2d/loops/GraphicsPrimitiveProxy -sun/java2d/loops/GeneralRenderer -sun/java2d/loops/GraphicsPrimitiveMgr$1 -sun/java2d/loops/GraphicsPrimitiveMgr$2 -sun/java2d/x11/X11PMBlitLoops$DelegateBlitLoop -sun/java2d/x11/X11PMBlitBgLoops -sun/java2d/x11/X11SurfaceData$LazyPipe -sun/awt/X11GraphicsConfig$X11GCDisposerRecord -sun/java2d/DisposerRecord -sun/java2d/Disposer -sun/java2d/Disposer$1 -sun/misc/ThreadGroupUtils -sun/awt/X11/XModifierKeymap -sun/awt/X11/XWrapperBase -sun/awt/X11/Native -sun/awt/X11/Native$1 -sun/awt/X11/XToolkit$3 -sun/awt/X11/XToolkit$4 -sun/awt/X11/XEventDispatcher -java/awt/Toolkit$DesktopPropertyChangeSupport -java/beans/PropertyChangeSupport -java/beans/PropertyChangeSupport$PropertyChangeListenerMap -java/beans/ChangeListenerMap -java/beans/PropertyChangeListener -sun/awt/SunToolkit$ModalityListenerList -sun/awt/ModalityListener -sun/font/FontConfigManager -sun/font/FontConfigManager$FontConfigInfo -sun/awt/X11/AwtScreenData -sun/awt/X11/XToolkit$1 -java/lang/invoke/DirectMethodHandle$Special -sun/awt/X11/XToolkit$2 -java/lang/ApplicationShutdownHooks -java/lang/ApplicationShutdownHooks$1 -java/lang/Shutdown -java/lang/Shutdown$Lock -sun/awt/X11/XWM -sun/awt/X11/XAtom -java/awt/Insets -sun/awt/X11/XWM$1 -sun/awt/X11/XErrorHandler$XBaseErrorHandler -sun/awt/X11/XErrorHandler -sun/awt/X11/XSetWindowAttributes -sun/awt/X11/XNETProtocol -sun/awt/X11/XStateProtocol -sun/awt/X11/XLayerProtocol -sun/awt/X11/XProtocol -sun/awt/X11/WindowPropertyGetter -sun/awt/X11/UnsafeXDisposerRecord -sun/awt/X11/XPropertyCache -sun/awt/X11/XWINProtocol -sun/awt/X11/XAtomList -java/awt/Rectangle -java/awt/geom/Rectangle2D -sun/awt/X11/XEvent -java/awt/geom/RectangularShape -javax/swing/RepaintManager$ProcessingRunnable -com/sun/java/swing/SwingUtilities3 -javax/swing/UIManager -javax/swing/UIManager$LookAndFeelInfo -sun/awt/OSInfo -sun/awt/OSInfo$WindowsVersion -sun/awt/OSInfo$1 -sun/awt/OSInfo$OSType -sun/swing/SwingUtilities2 -java/awt/font/FontRenderContext -java/awt/RenderingHints -sun/swing/StringUIClientPropertyKey -sun/swing/UIClientPropertyKey -sun/swing/SwingUtilities2$LSBCacheEntry -javax/swing/UIManager$LAFState -javax/swing/UIDefaults -javax/swing/MultiUIDefaults -javax/swing/UIManager$1 -javax/swing/plaf/metal/MetalLookAndFeel -javax/swing/plaf/basic/BasicLookAndFeel -javax/swing/LookAndFeel -sun/swing/DefaultLookup -javax/swing/plaf/metal/OceanTheme -javax/swing/plaf/metal/DefaultMetalTheme -javax/swing/plaf/metal/MetalTheme -javax/swing/plaf/ColorUIResource -javax/swing/plaf/UIResource -sun/swing/PrintColorUIResource -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate -javax/swing/plaf/FontUIResource -sun/swing/SwingLazyValue -javax/swing/UIDefaults$LazyValue -javax/swing/UIDefaults$ActiveValue -javax/swing/plaf/InsetsUIResource -javax/swing/plaf/BorderUIResource$EmptyBorderUIResource -javax/swing/border/EmptyBorder -javax/swing/border/AbstractBorder -javax/swing/border/Border -sun/swing/SwingUtilities2$2 -javax/swing/plaf/basic/BasicLookAndFeel$2 -javax/swing/plaf/DimensionUIResource -javax/swing/UIDefaults$LazyInputMap -javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue -sun/swing/SwingUtilities2$AATextInfo -sun/awt/HeadlessToolkit -sun/awt/X11/XAWTXSettings -sun/awt/X11/XMSelectionListener -sun/awt/XSettings -sun/awt/X11/XMSelection -sun/awt/X11/XMSelection$1 -sun/awt/X11/XMSelection$3 -sun/awt/X11/XErrorHandler$IgnoreBadWindowHandler -sun/awt/XSettings$Update -java/beans/PropertyChangeEvent -java/awt/Toolkit$DesktopPropertyChangeSupport$1 -java/util/IdentityHashMap$Values -java/util/IdentityHashMap$ValueIterator -java/util/IdentityHashMap$IdentityHashMapIterator -java/util/HashMap$KeySet -java/util/HashMap$KeyIterator -javax/swing/plaf/metal/MetalLookAndFeel$AATextListener -java/beans/PropertyChangeListenerProxy -java/util/EventListenerProxy -javax/swing/plaf/metal/OceanTheme$1 -javax/swing/plaf/metal/OceanTheme$2 -javax/swing/plaf/metal/OceanTheme$3 -javax/swing/plaf/metal/OceanTheme$4 -javax/swing/plaf/metal/OceanTheme$5 -javax/swing/plaf/metal/OceanTheme$6 -javax/swing/SwingPaintEventDispatcher -sun/awt/PaintEventDispatcher -java/awt/KeyboardFocusManager -java/awt/KeyEventDispatcher -java/awt/KeyEventPostProcessor -java/awt/KeyboardFocusManager$1 -sun/awt/AWTAccessor$KeyboardFocusManagerAccessor -java/awt/AWTKeyStroke -java/awt/AWTKeyStroke$1 -java/awt/DefaultKeyboardFocusManager -java/awt/DefaultKeyboardFocusManager$1 -sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor -java/awt/DefaultFocusTraversalPolicy -java/awt/ContainerOrderFocusTraversalPolicy -java/awt/FocusTraversalPolicy -java/util/Collections$UnmodifiableSet -sun/awt/X11/XKeyboardFocusManagerPeer -sun/awt/KeyboardFocusManagerPeerImpl -java/awt/peer/KeyboardFocusManagerPeer -javax/swing/UIManager$2 -javax/swing/JRootPane -javax/swing/UIDefaults$TextAndMnemonicHashMap -com/sun/swing/internal/plaf/metal/resources/metal -sun/util/ResourceBundleEnumeration -com/sun/swing/internal/plaf/basic/resources/basic -javax/swing/plaf/metal/MetalLabelUI -javax/swing/plaf/basic/BasicLabelUI -javax/swing/plaf/LabelUI -javax/swing/plaf/ComponentUI -sun/reflect/misc/MethodUtil -sun/reflect/misc/MethodUtil$1 -sun/net/www/protocol/jar/JarURLConnection -java/net/JarURLConnection -sun/net/www/protocol/jar/JarFileFactory -sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController -java/net/HttpURLConnection -sun/net/www/protocol/jar/URLJarFile -sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry -sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream -java/lang/UnsupportedOperationException -java/lang/reflect/InvocationTargetException -javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 -javax/swing/plaf/basic/BasicHTML -sun/awt/util/IdentityArrayList -java/awt/Window$1 -sun/awt/AWTAccessor$WindowAccessor -java/awt/Frame$1 -sun/awt/AWTAccessor$FrameAccessor -java/awt/Window$Type -java/awt/Cursor -java/awt/Cursor$1 -sun/awt/AWTAccessor$CursorAccessor -java/awt/BorderLayout -java/awt/LayoutManager2 -sun/awt/X11/XlibUtil -java/util/concurrent/locks/LockSupport -sun/nio/ch/Interruptible -java/awt/Dialog$ModalExclusionType -java/awt/Window$WindowDisposerRecord -javax/swing/JPanel -java/awt/FlowLayout -javax/swing/plaf/basic/BasicPanelUI -javax/swing/plaf/PanelUI -java/awt/Component$BaselineResizeBehavior -sun/swing/SwingLazyValue$1 -javax/swing/JLayeredPane -javax/swing/JRootPane$1 -javax/swing/ArrayTable -javax/swing/JRootPane$RootLayout -javax/swing/BufferStrategyPaintManager -javax/swing/RepaintManager$PaintManager -javax/swing/FocusManager -javax/swing/LayoutFocusTraversalPolicy -javax/swing/SortingFocusTraversalPolicy -javax/swing/InternalFrameFocusTraversalPolicy -javax/swing/SwingContainerOrderFocusTraversalPolicy -javax/swing/SortingFocusTraversalPolicy$1 -java/util/Spliterator$OfLong -java/util/Spliterator$OfPrimitive +sun/invoke/util/Wrapper$1 +java/lang/invoke/MethodHandleImpl$IntrinsicMethodHandle +java/util/ArrayList$ArrayListSpliterator java/util/Spliterator +java/util/stream/StreamSupport +java/util/stream/ReferencePipeline$Head +java/util/stream/ReferencePipeline +java/util/stream/Stream +java/util/stream/BaseStream +java/util/stream/AbstractPipeline +java/util/stream/PipelineHelper +java/util/stream/StreamOpFlag +java/util/stream/StreamOpFlag$Type +java/util/stream/StreamOpFlag$MaskBuilder +java/util/EnumMap +java/util/EnumMap$1 +java/lang/Class$3 +java/util/HashMap$EntrySet +java/util/HashMap$EntryIterator +sun/reflect/annotation/AnnotationParser +jdk/internal/reflect/NativeMethodAccessorImpl +jdk/internal/reflect/DelegatingMethodAccessorImpl +java/util/stream/ReferencePipeline$3 +java/util/stream/ReferencePipeline$StatelessOp +java/util/stream/StreamShape +java/util/stream/ReferencePipeline$7 +java/util/stream/FindOps +java/util/stream/FindOps$FindSink$OfRef +java/util/stream/FindOps$FindSink +java/util/stream/TerminalSink +java/util/stream/Sink +java/util/function/Consumer +java/util/stream/FindOps$FindOp +java/util/stream/TerminalOp +java/lang/invoke/DirectMethodHandle$Constructor +java/util/stream/ReferencePipeline$7$1 +java/util/stream/Sink$ChainedReference +java/util/stream/ReferencePipeline$3$1 +java/util/stream/Streams$StreamBuilderImpl +java/util/stream/Stream$Builder +java/util/stream/Streams$AbstractStreamBuilderImpl +java/util/stream/Streams +java/util/IdentityHashMap$Values +java/io/FileInputStream$1 +jdk/internal/logger/BootstrapLogger +java/lang/System$Logger +sun/util/logging/PlatformLogger$Bridge +sun/util/logging/PlatformLogger$ConfigurableBridge +jdk/internal/logger/BootstrapLogger$DetectBackend +jdk/internal/logger/BootstrapLogger$DetectBackend$1 +java/util/ServiceLoader +java/util/ServiceLoader$ModuleServicesLookupIterator +java/util/Spliterators +java/util/Spliterators$EmptySpliterator$OfRef +java/util/Spliterators$EmptySpliterator +java/util/Spliterators$EmptySpliterator$OfInt java/util/Spliterator$OfInt +java/util/Spliterator$OfPrimitive +java/util/Spliterators$EmptySpliterator$OfLong +java/util/Spliterator$OfLong +java/util/Spliterators$EmptySpliterator$OfDouble java/util/Spliterator$OfDouble -java/util/stream/IntStream -java/util/stream/BaseStream -java/util/stream/Stream -java/util/stream/DoubleStream -java/util/stream/LongStream -java/util/function/DoubleBinaryOperator -java/util/function/IntBinaryOperator -java/util/function/LongBinaryOperator -java/util/function/BinaryOperator -java/util/function/BiFunction -java/util/function/IntToDoubleFunction -java/util/function/IntFunction -java/util/function/IntToLongFunction -java/util/function/IntUnaryOperator -javax/swing/SwingDefaultFocusTraversalPolicy -javax/swing/LayoutComparator -javax/swing/plaf/metal/MetalRootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI -javax/swing/plaf/RootPaneUI -javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap -javax/swing/plaf/ComponentInputMapUIResource -javax/swing/ComponentInputMap -javax/swing/InputMap -javax/swing/plaf/InputMapUIResource -javax/swing/KeyStroke -java/awt/VKCollection -sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl -javax/swing/plaf/basic/LazyActionMap -javax/swing/plaf/ActionMapUIResource -javax/swing/ActionMap -sun/awt/X11/XFramePeer -java/awt/peer/FramePeer -java/awt/peer/WindowPeer -java/awt/peer/ContainerPeer -java/awt/peer/ComponentPeer -sun/awt/X11/XDecoratedPeer -sun/awt/X11/XWindowPeer -sun/awt/X11/XPanelPeer -java/awt/peer/PanelPeer -sun/awt/X11/XCanvasPeer -java/awt/peer/CanvasPeer -sun/awt/X11/XComponentPeer -java/awt/dnd/peer/DropTargetPeer -sun/java2d/BackBufferCapsProvider -sun/awt/X11/XWindow -sun/awt/X11ComponentPeer -sun/awt/X11/XBaseWindow -sun/awt/X11/XCreateWindowParams -sun/awt/X11/XBaseWindow$InitialiseState -sun/awt/X11/XBaseWindow$StateLock -sun/awt/X11/AwtGraphicsConfigData -sun/awt/X11/XVisualInfo -java/awt/SystemColor -sun/awt/AWTAccessor$SystemColorAccessor -sun/awt/X11/MotifColorUtilities -sun/awt/X11/XRepaintArea -sun/awt/RepaintArea -sun/awt/X11/XWindowAttributesData -sun/awt/X11/WindowDimensions -java/awt/Point -java/awt/geom/Point2D -java/util/TreeMap$Entry -sun/awt/X11/XSizeHints -sun/awt/X11/XRootWindow -sun/awt/X11/XRootWindow$LazyHolder -sun/nio/cs/ISO_8859_1$Encoder -sun/nio/cs/Surrogate$Parser -sun/nio/cs/Surrogate -sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData -sun/awt/X11/XDropTargetEventProcessor -sun/java2d/loops/RenderLoops -sun/awt/X11/XDragSourceContextPeer -sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec -sun/awt/X11/XDragSourceProtocolListener -java/util/Arrays$LegacyMergeSort -sun/awt/dnd/SunDragSourceContextPeer -java/awt/dnd/peer/DragSourceContextPeer -java/util/TimSort -sun/awt/X11/XAnyEvent -sun/awt/X11/XAwtState -sun/awt/X11/XBaseWindow$1 -sun/awt/X11/XPropertyEvent -sun/java2d/DefaultDisposerRecord -sun/java2d/SurfaceDataProxy -sun/awt/image/SurfaceManager$FlushableCacheData -sun/java2d/SurfaceDataProxy$1 -sun/java2d/StateTracker -sun/java2d/StateTracker$1 -sun/java2d/StateTracker$2 -sun/java2d/x11/X11Renderer -sun/awt/X11/XGlobalCursorManager -sun/awt/GlobalCursorManager -sun/awt/IconInfo -sun/awt/AWTIcon32_java_icon16_png -sun/awt/AWTIcon32_java_icon24_png -sun/awt/AWTIcon32_java_icon32_png -sun/awt/AWTIcon32_java_icon48_png -sun/awt/X11/XClientMessageEvent -sun/awt/X11/XContentWindow -sun/awt/X11/XFocusProxyWindow -sun/awt/X11/XWMHints -java/util/LinkedList$ListItr -sun/awt/AWTAutoShutdown -java/awt/peer/LightweightPeer -sun/awt/NullComponentPeer -java/awt/SplashScreen -java/awt/Dialog -java/awt/Dialog$ModalityType -sun/awt/X11/PropMwmHints -sun/awt/X11/XWindowPeer$4 -sun/awt/GlobalCursorManager$NativeUpdater -java/awt/event/WindowEvent -java/awt/EventQueue$5 -java/awt/EventDispatchThread -sun/awt/PeerEvent -java/awt/EventDispatchThread$1 -java/awt/Conditional -java/awt/event/InvocationEvent -java/awt/ActiveEvent -java/awt/EventDispatchThread$HierarchyEventFilter -java/awt/EventFilter -java/awt/event/PaintEvent -sun/awt/X11/XReparentEvent -java/awt/event/MouseEvent -java/awt/ModalEventFilter -sun/awt/EventQueueItem -sun/awt/EventQueueDelegate -java/awt/EventFilter$FilterAction -java/awt/EventQueue$3 -java/awt/EventQueue$4 -sun/awt/dnd/SunDropTargetEvent -sun/awt/X11/XConfigureEvent -java/awt/event/InputMethodEvent -java/awt/event/ActionEvent -java/awt/event/FocusEvent -java/util/Vector$Itr -java/awt/event/InvocationEvent$1 -sun/awt/X11/XWindowPeer$2 -sun/awt/AWTAccessor$InvocationEventAccessor -java/applet/Applet -java/awt/Panel -sun/awt/X11/XVisibilityEvent -sun/awt/X11/XExposeEvent -sun/awt/event/IgnorePaintEvent -sun/awt/X11/XTranslateCoordinates -sun/awt/X11/XFocusChangeEvent -java/awt/SequencedEvent -java/awt/SequencedEvent$1 -sun/awt/AWTAccessor$SequencedEventAccessor -sun/awt/X11/XComponentPeer$1 -java/awt/MenuComponent -java/awt/TrayIcon -java/util/IdentityHashMap$KeySet -java/util/IdentityHashMap$KeyIterator -javax/swing/RepaintManager$4 -java/awt/GraphicsCallback$PaintCallback -java/awt/GraphicsCallback -sun/awt/SunGraphicsCallback -javax/swing/BufferStrategyPaintManager$BufferInfo -java/awt/event/WindowListener -java/awt/event/ComponentAdapter -java/awt/event/ComponentListener -java/awt/AWTEventMulticaster -java/awt/event/ContainerListener -java/awt/event/FocusListener -java/awt/event/KeyListener -java/awt/event/MouseListener -java/awt/event/MouseMotionListener -java/awt/event/WindowFocusListener -java/awt/event/WindowStateListener -java/awt/event/ActionListener -java/awt/event/ItemListener -java/awt/event/AdjustmentListener -java/awt/event/TextListener -java/awt/event/InputMethodListener -java/awt/event/HierarchyListener -java/awt/event/HierarchyBoundsListener -java/awt/event/MouseWheelListener -java/awt/BufferCapabilities -java/awt/Component$BltSubRegionBufferStrategy -sun/awt/SubRegionShowable -java/awt/Component$BltBufferStrategy -java/awt/image/BufferStrategy -java/awt/image/VolatileImage -java/awt/Image -sun/awt/image/SunVolatileImage -java/awt/Image$1 -sun/awt/image/SurfaceManager$ImageAccessor -sun/awt/image/SurfaceManager -sun/awt/image/BufferedImageGraphicsConfig -sun/print/PrinterGraphicsConfig -sun/java2d/opengl/GLXGraphicsConfig -sun/java2d/opengl/OGLGraphicsConfig -sun/java2d/pipe/hw/AccelGraphicsConfig -sun/java2d/pipe/hw/BufferedContextProvider -sun/java2d/xr/XRGraphicsConfig -sun/java2d/x11/X11VolatileSurfaceManager -sun/awt/image/VolatileSurfaceManager -sun/java2d/x11/X11SurfaceData$X11PixmapSurfaceData -sun/font/FontDesignMetrics -java/awt/FontMetrics -sun/font/SunFontManager -sun/java2d/FontSupport -sun/font/FontManagerForSGE -sun/font/FontManager -sun/font/SunFontManager$TTFilter -java/io/FilenameFilter -sun/font/SunFontManager$T1Filter -sun/font/SunFontManager$1 -sun/font/FontManagerNativeLibrary -sun/font/FontManagerNativeLibrary$1 -sun/font/FontUtilities -sun/font/FontUtilities$1 -sun/font/TrueTypeFont -sun/font/FileFont -sun/font/PhysicalFont -sun/font/Font2D -sun/font/Type1Font -java/awt/geom/Point2D$Float -sun/font/StrikeMetrics -java/awt/geom/Rectangle2D$Float -java/awt/geom/GeneralPath -sun/font/CharToGlyphMapper -sun/font/PhysicalStrike -sun/font/FontStrike -sun/font/StrikeCache -sun/font/StrikeCache$1 -sun/font/GlyphList -sun/font/FontManagerFactory -sun/font/FontManagerFactory$1 -sun/awt/X11FontManager -sun/font/CompositeFont -sun/font/SunFontManager$2 -java/io/StreamTokenizer -sun/font/SunFontManager$FontRegistrationInfo -sun/awt/motif/MFontConfiguration -sun/awt/FontConfiguration -sun/awt/FontDescriptor -java/util/Properties$LineReader -sun/font/FcFontConfiguration +java/util/Spliterators$1Adapter +java/util/ServiceLoader$LazyClassPathLookupIterator +java/util/ServiceLoader$2 +java/util/ServiceLoader$3 +jdk/internal/loader/AbstractClassLoaderValue$Memoizer +java/util/Collections$EmptyIterator +jdk/internal/module/Resources +jdk/internal/loader/BuiltinClassLoader$2 +jdk/internal/loader/BuiltinClassLoader$5 +jdk/internal/module/SystemModuleFinders$SystemModuleReader +java/lang/module/ModuleReader +jdk/internal/module/SystemModuleFinders$SystemImage +jdk/internal/jimage/ImageReaderFactory +jdk/internal/jimage/ImageReaderFactory$1 +jdk/internal/jimage/ImageReader +jdk/internal/jimage/ImageReader$SharedImageReader +jdk/internal/jimage/BasicImageReader +jdk/internal/jimage/BasicImageReader$1 +jdk/internal/jimage/NativeImageBuffer +jdk/internal/jimage/NativeImageBuffer$1 +jdk/internal/jimage/ImageHeader +java/nio/DirectIntBufferU +java/nio/IntBuffer +java/nio/DirectByteBufferR +java/nio/DirectIntBufferRU +jdk/internal/jimage/ImageStringsReader +jdk/internal/jimage/ImageStrings +jdk/internal/jimage/decompressor/Decompressor +jdk/internal/jimage/ImageLocation +java/util/Collections$EmptyEnumeration +jdk/internal/loader/BuiltinClassLoader$1 +java/lang/CompoundEnumeration +jdk/internal/loader/URLClassPath$1 +java/util/concurrent/CopyOnWriteArrayList$COWIterator +java/util/ServiceLoader$1 +java/util/ServiceLoader$ProviderImpl +java/util/ServiceLoader$Provider +jdk/internal/logger/BootstrapLogger$LoggingBackend +jdk/internal/logger/BootstrapLogger$RedirectedLoggers +jdk/internal/logger/BootstrapLogger$BootstrapExecutors +java/util/logging/LogManager$4 +java/util/logging/Logger$SystemLoggerHelper +java/util/logging/Logger$SystemLoggerHelper$1 +jdk/internal/logger/DefaultLoggerFinder$1 java/net/InetAddress java/net/InetAddress$1 +java/net/InetAddress$2 +jdk/internal/misc/JavaNetInetAddressAccess java/net/InetAddress$InetAddressHolder -java/net/InetAddress$Cache -java/net/InetAddress$Cache$Type +java/util/concurrent/ConcurrentSkipListSet +java/util/NavigableSet +java/util/SortedSet +java/util/concurrent/ConcurrentSkipListMap +java/util/concurrent/ConcurrentNavigableMap +java/util/NavigableMap +java/util/SortedMap +java/util/concurrent/ConcurrentSkipListMap$Index +java/util/concurrent/atomic/LongAdder +java/util/concurrent/atomic/Striped64 +java/util/concurrent/ConcurrentSkipListMap$Node java/net/InetAddressImplFactory java/net/Inet4AddressImpl java/net/InetAddressImpl -java/net/InetAddress$2 -sun/net/spi/nameservice/NameService +java/net/InetAddress$PlatformNameService +java/net/InetAddress$NameService java/net/Inet4Address -java/net/Inet6Address -java/net/Inet6Address$Inet6AddressHolder -sun/net/InetAddressCachePolicy -sun/net/InetAddressCachePolicy$1 -java/security/Security -java/security/Security$1 -sun/net/InetAddressCachePolicy$2 -java/util/LinkedHashMap$LinkedKeySet -java/util/LinkedHashMap$LinkedKeyIterator -java/net/InetAddress$CacheEntry -sun/font/FontConfigManager$FcCompFont -sun/font/FontConfigManager$FontConfigFont -sun/font/CompositeFontDescriptor -sun/font/Font2DHandle -sun/font/FontFamily -sun/font/SunFontManager$3 -sun/font/FontDesignMetrics$MetricsKey -sun/font/FontStrikeDesc -sun/font/CompositeStrike -sun/font/FontStrikeDisposer -sun/java2d/Disposer$PollDisposable -sun/font/StrikeCache$SoftDisposerRef -sun/font/StrikeCache$DisposableStrike -sun/font/TrueTypeFont$TTDisposerRecord -sun/font/TrueTypeFont$1 -java/io/RandomAccessFile -java/io/DataOutput -java/io/DataInput -sun/nio/ch/FileChannelImpl -java/nio/channels/FileChannel -java/nio/channels/SeekableByteChannel -java/nio/channels/ByteChannel -java/nio/channels/ReadableByteChannel -java/nio/channels/Channel -java/nio/channels/WritableByteChannel -java/nio/channels/GatheringByteChannel -java/nio/channels/ScatteringByteChannel -java/nio/channels/spi/AbstractInterruptibleChannel -java/nio/channels/InterruptibleChannel -java/nio/file/attribute/FileAttribute -sun/nio/ch/IOUtil -sun/nio/ch/IOUtil$1 -sun/nio/ch/NativeThreadSet -sun/nio/ch/FileDispatcherImpl -sun/nio/ch/FileDispatcher -sun/nio/ch/NativeDispatcher -java/nio/channels/spi/AbstractInterruptibleChannel$1 -sun/nio/ch/NativeThread -sun/nio/ch/IOStatus -sun/nio/ch/Util -sun/nio/ch/Util$1 -sun/nio/ch/Util$BufferCache -java/nio/DirectByteBuffer$Deallocator -java/nio/ByteBufferAsIntBufferB -java/nio/IntBuffer -sun/font/TrueTypeFont$DirectoryEntry -java/nio/ByteBufferAsShortBufferB -java/nio/ShortBuffer -sun/nio/cs/UTF_16$Decoder -sun/nio/cs/UnicodeDecoder -sun/font/FileFontStrike -sun/font/FontScaler -sun/font/T2KFontScaler -sun/font/T2KFontScaler$1 -sun/font/TrueTypeGlyphMapper -sun/font/CMap -sun/font/CMap$NullCMapClass -sun/font/CMap$CMapFormat12 -sun/font/FontDesignMetrics$KeyReference -sun/font/CompositeGlyphMapper -java/awt/print/PrinterGraphics -java/awt/PrintGraphics -sun/java2d/loops/FontInfo -sun/awt/X11/XSystemTrayPeer -java/awt/peer/SystemTrayPeer -java/util/jar/Attributes -java/util/jar/Manifest$FastInputStream -java/util/jar/Attributes$Name -sun/misc/ASCIICaseInsensitiveComparator -java/util/jar/JarVerifier -java/security/CodeSigner -java/util/jar/JarVerifier$3 -java/io/ByteArrayOutputStream -java/lang/Package -sun/security/util/SignatureFileVerifier -sun/security/util/ManifestEntryVerifier -java/util/MissingResourceException -javax/swing/JDialog -javax/swing/text/JTextComponent -javax/swing/Scrollable -javax/swing/JTextArea -javax/swing/JScrollPane -javax/swing/ScrollPaneConstants -javax/swing/AbstractButton -java/awt/ItemSelectable -javax/swing/JButton -java/io/StringWriter -java/lang/SecurityException -javax/swing/JWindow -java/io/UnsupportedEncodingException -sun/misc/URLClassPath$FileLoader -java/lang/CloneNotSupportedException -java/lang/InternalError -java/net/UnknownHostException -java/net/Socket -java/net/SocketAddress -java/nio/channels/SocketChannel -java/nio/channels/NetworkChannel -java/nio/channels/spi/AbstractSelectableChannel -java/nio/channels/SelectableChannel -java/net/SocketException -java/net/SocketImplFactory -java/net/InetSocketAddress -java/net/InetSocketAddress$InetSocketAddressHolder -java/net/Proxy -java/net/SocketImpl -java/net/SocketOptions -java/net/SocksSocketImpl -java/net/SocksConsts -java/net/PlainSocketImpl -java/net/AbstractPlainSocketImpl -java/net/AbstractPlainSocketImpl$1 -sun/net/util/IPAddressUtil -java/net/SocksSocketImpl$3 -java/net/ProxySelector -sun/net/spi/DefaultProxySelector -sun/net/spi/DefaultProxySelector$1 -sun/net/NetProperties -sun/net/NetProperties$1 -java/net/URI -java/net/URI$Parser -sun/net/spi/DefaultProxySelector$NonProxyInfo -sun/net/spi/DefaultProxySelector$3 -java/net/Proxy$Type -sun/net/NetHooks -sun/net/sdp/SdpProvider -sun/net/NetHooks$Provider -java/net/ConnectException -java/net/MalformedURLException -java/lang/UnsatisfiedLinkError -javax/swing/UnsupportedLookAndFeelException -sun/misc/FloatingDecimal$ASCIIToBinaryBuffer -sun/misc/FDBigInteger -java/util/ResourceBundle$Control$1 -java/net/URLClassLoader$2 -java/util/PropertyResourceBundle -java/util/ResourceBundle$BundleReference -java/util/logging/Level -java/util/logging/Level$KnownLevel -java/util/logging/Logger -java/util/logging/Handler -java/util/logging/Logger$LoggerBundle -java/util/concurrent/CopyOnWriteArrayList -java/util/logging/LogManager -java/util/logging/LogManager$1 -java/util/logging/LogManager$SystemLoggerContext -java/util/logging/LogManager$LoggerContext -java/util/logging/LogManager$LogNode -java/util/logging/LoggingPermission -java/util/logging/LogManager$Cleaner -java/util/logging/LogManager$2 -java/util/logging/LogManager$3 -java/util/logging/LogManager$LoggerWeakRef -java/util/logging/LogManager$LoggerContext$1 -java/util/logging/LogManager$RootLogger -java/util/logging/LogManager$5 -java/util/logging/Logger$1 -sun/util/logging/resources/logging -javax/swing/Box -javax/swing/Box$Filler -javax/swing/Icon -javax/swing/BoxLayout -javax/swing/plaf/basic/BasicPopupMenuUI -javax/swing/plaf/PopupMenuUI -javax/swing/ImageIcon -javax/swing/ImageIcon$1 -javax/swing/ImageIcon$2 -javax/swing/ImageIcon$2$1 -java/awt/dnd/DropTarget -java/awt/dnd/DropTargetListener -javax/accessibility/AccessibleContext -sun/reflect/UnsafeObjectFieldAccessorImpl -java/awt/MediaTracker -sun/misc/SoftCache$ValueCell -sun/awt/image/URLImageSource -sun/awt/image/InputStreamImageSource -java/awt/image/ImageProducer -sun/awt/image/ImageFetchable -sun/awt/image/ToolkitImage -sun/awt/image/NativeLibLoader -sun/awt/image/NativeLibLoader$1 -javax/swing/ImageIcon$3 -java/awt/ImageMediaEntry -java/awt/MediaEntry -sun/awt/image/MultiResolutionToolkitImage -sun/awt/image/MultiResolutionImage -sun/awt/image/ImageRepresentation -java/awt/image/ImageConsumer -sun/awt/image/ImageWatched -sun/awt/image/ImageWatched$Link -sun/awt/image/ImageWatched$WeakLink -sun/awt/image/ImageConsumerQueue -sun/awt/image/ImageFetcher -sun/awt/image/FetcherInfo -sun/awt/image/ImageFetcher$1 -sun/net/ProgressMonitor -sun/net/DefaultProgressMeteringPolicy -sun/net/ProgressMeteringPolicy -sun/net/www/MimeTable -java/net/FileNameMap -sun/net/www/MimeTable$1 -sun/net/www/MimeTable$DefaultInstanceHolder -sun/net/www/MimeTable$DefaultInstanceHolder$1 -sun/net/www/MimeEntry -java/net/URLConnection$1 -java/text/SimpleDateFormat +java/util/Spliterators$ArraySpliterator +java/util/concurrent/ConcurrentHashMap$ForwardingNode +java/util/stream/Collectors +java/util/stream/Collector$Characteristics +java/util/EnumSet +java/util/RegularEnumSet +java/util/stream/Collectors$CollectorImpl +java/util/stream/Collector +java/util/StringJoiner +java/util/function/BiConsumer +java/util/function/BinaryOperator +java/util/stream/ReduceOps +java/util/stream/ReduceOps$3 +java/util/stream/ReduceOps$ReduceOp +java/util/stream/ReduceOps$ReduceTask +java/util/stream/AbstractTask +java/util/concurrent/CountedCompleter +java/util/concurrent/ForkJoinTask +java/util/concurrent/Future +java/util/concurrent/ForkJoinTask$ExceptionNode +java/util/concurrent/ForkJoinPool +java/util/concurrent/AbstractExecutorService +java/util/concurrent/ExecutorService +java/util/concurrent/Executor +java/lang/invoke/VarHandleLongs$FieldInstanceReadWrite +java/lang/invoke/VarHandleLongs$FieldInstanceReadOnly +java/lang/invoke/VarHandleObjects$Array +java/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory +java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory +java/util/concurrent/ForkJoinPool$1 +java/util/concurrent/ForkJoinPool$WorkQueue +java/util/concurrent/ForkJoinWorkerThread +java/util/concurrent/ThreadLocalRandom +java/util/Random +java/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory$1 +java/util/stream/ReduceOps$3ReducingSink +java/util/stream/ReduceOps$AccumulatingSink +java/util/stream/ReduceOps$Box +java/util/ArrayList$SubList +java/time/format/DateTimeFormatter +java/time/format/DateTimeFormatterBuilder +java/time/ZoneId +java/time/temporal/TemporalQuery +java/lang/Character$CharacterCache +java/time/temporal/ChronoField +java/time/temporal/TemporalField +java/time/temporal/ChronoUnit +java/time/temporal/TemporalUnit +java/time/Duration +java/time/temporal/TemporalAmount +java/math/BigInteger +java/time/temporal/ValueRange +java/time/temporal/IsoFields +java/time/temporal/IsoFields$Field +java/time/temporal/IsoFields$Field$1 +java/time/temporal/IsoFields$Field$2 +java/time/temporal/IsoFields$Field$3 +java/time/temporal/IsoFields$Field$4 +java/time/temporal/IsoFields$Unit +java/time/temporal/JulianFields +java/time/temporal/JulianFields$Field +java/time/format/DateTimeFormatterBuilder$2 +java/time/format/SignStyle +java/time/format/DateTimeFormatterBuilder$NumberPrinterParser +java/time/format/DateTimeFormatterBuilder$DateTimePrinterParser +java/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser +java/time/format/ResolverStyle +java/time/chrono/IsoChronology +java/time/chrono/AbstractChronology +java/time/chrono/Chronology +java/util/Locale$Category +java/util/Locale$1 +java/time/format/DateTimeFormatterBuilder$CompositePrinterParser +java/time/format/DecimalStyle +java/time/format/DateTimeFormatterBuilder$SettingsParser +java/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser +java/time/format/DateTimeFormatterBuilder$FractionPrinterParser +java/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser +java/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser +java/time/format/DateTimeFormatterBuilder$InstantPrinterParser +java/lang/Long$LongCache +java/time/format/TextStyle +java/util/Collections$SingletonMap +java/time/format/DateTimeTextProvider$LocaleStore +java/util/AbstractMap$SimpleImmutableEntry +java/util/Collections$SingletonSet +java/util/Collections$1 +java/util/LinkedHashMap$LinkedEntrySet +java/util/LinkedHashMap$LinkedEntryIterator +java/util/LinkedHashMap$LinkedHashIterator +java/time/format/DateTimeTextProvider +java/time/format/DateTimeTextProvider$1 +java/util/Arrays$LegacyMergeSort +java/util/TimSort +java/time/format/DateTimeFormatterBuilder$1 +java/time/format/DateTimeFormatterBuilder$TextPrinterParser +java/time/Period +java/time/chrono/ChronoPeriod +java/time/ZoneOffset +java/time/temporal/TemporalAdjuster +java/time/ZoneRegion +java/time/zone/ZoneRules +java/time/zone/ZoneOffsetTransitionRule +java/time/LocalDateTime +java/time/temporal/Temporal +java/time/chrono/ChronoLocalDateTime +java/time/LocalDate +java/time/chrono/ChronoLocalDate +java/time/LocalTime +java/time/Clock +java/time/Clock$SystemClock +java/time/Instant +java/time/format/DateTimePrintContext +java/time/temporal/TemporalQueries +java/time/temporal/TemporalQueries$1 +java/time/temporal/TemporalQueries$2 +java/time/temporal/TemporalQueries$3 +java/time/temporal/TemporalQueries$4 +java/time/temporal/TemporalQueries$5 +java/time/temporal/TemporalQueries$6 +java/time/temporal/TemporalQueries$7 +java/time/LocalDate$1 +java/time/format/DateTimeFormatterBuilder$3 +java/time/LocalTime$1 +java/math/BigDecimal +java/math/BigDecimal$1 +java/math/RoundingMode java/text/DateFormat java/text/Format +java/text/spi/DateFormatProvider +java/util/spi/LocaleServiceProvider +sun/util/locale/provider/LocaleProviderAdapter +sun/util/locale/provider/LocaleProviderAdapter$Type +sun/util/locale/provider/LocaleProviderAdapter$NonExistentAdapter +sun/util/locale/provider/FallbackLocaleProviderAdapter +sun/util/locale/provider/JRELocaleProviderAdapter +sun/util/locale/provider/ResourceBundleBasedAdapter +sun/util/locale/LanguageTag +sun/util/locale/provider/LocaleResources +sun/util/resources/LocaleData +java/util/ResourceBundle$Control +java/util/ResourceBundle$Control$CandidateListCache +java/util/ResourceBundle +sun/util/locale/provider/LocaleProviderAdapter$1 +sun/util/cldr/CLDRLocaleProviderAdapter +sun/util/cldr/CLDRBaseLocaleDataMetaInfo +sun/util/locale/provider/LocaleDataMetaInfo +sun/util/locale/ParseStatus +sun/util/locale/StringTokenIterator +sun/util/cldr/CLDRLocaleProviderAdapter$1 +java/lang/invoke/DirectMethodHandle$Special +sun/util/locale/provider/DateFormatProviderImpl +sun/util/locale/provider/AvailableLanguageTags +java/util/StringTokenizer +sun/util/locale/provider/CalendarDataUtility +java/text/SimpleDateFormat java/text/DateFormat$Field java/text/Format$Field +java/text/AttributedCharacterIterator$Attribute +java/util/Calendar java/util/TimeZone sun/util/calendar/ZoneInfo sun/util/calendar/ZoneInfoFile sun/util/calendar/ZoneInfoFile$1 java/io/DataInputStream sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule -sun/util/calendar/ZoneInfoFile$Checksum -java/util/zip/CRC32 -java/util/zip/Checksum -java/util/TimeZone$1 -java/util/Calendar sun/util/spi/CalendarProvider -java/util/spi/LocaleServiceProvider -sun/util/locale/provider/LocaleProviderAdapter -sun/util/locale/provider/JRELocaleProviderAdapter -sun/util/locale/provider/ResourceBundleBasedAdapter -sun/util/locale/provider/SPILocaleProviderAdapter -sun/util/locale/provider/AuxLocaleProviderAdapter -sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider -sun/util/locale/provider/LocaleProviderAdapter$Type -sun/util/locale/provider/LocaleProviderAdapter$1 sun/util/locale/provider/CalendarProviderImpl -sun/util/locale/provider/AvailableLanguageTags -sun/util/locale/provider/LocaleDataMetaInfo -sun/util/locale/provider/JRELocaleProviderAdapter$1 java/util/Calendar$Builder java/util/GregorianCalendar -sun/util/locale/provider/CalendarDataUtility +sun/util/calendar/CalendarSystem +sun/util/calendar/Gregorian +sun/util/calendar/BaseCalendar +sun/util/calendar/AbstractCalendar java/util/spi/CalendarDataProvider sun/util/locale/provider/LocaleServiceProviderPool java/text/spi/BreakIteratorProvider java/text/spi/CollatorProvider -java/text/spi/DateFormatProvider java/text/spi/DateFormatSymbolsProvider java/text/spi/DecimalFormatSymbolsProvider java/text/spi/NumberFormatProvider java/util/spi/CurrencyNameProvider java/util/spi/LocaleNameProvider java/util/spi/TimeZoneNameProvider -sun/util/locale/provider/CalendarDataProviderImpl -sun/util/locale/provider/SPILocaleProviderAdapter$1 sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter -sun/util/locale/provider/LocaleResources -sun/util/resources/LocaleData -sun/util/resources/LocaleData$1 -sun/util/resources/LocaleData$LocaleDataResourceBundleControl -sun/util/locale/LanguageTag -java/util/Collections$EmptyIterator -sun/util/resources/CalendarData -sun/util/resources/LocaleNamesBundle -sun/util/resources/OpenListResourceBundle -sun/util/resources/en/CalendarData_en -sun/util/locale/provider/LocaleResources$ResourceReference +java/util/ResourceBundle$NoFallbackControl +java/util/ResourceBundle$SingleFormatControl +java/util/LinkedList +java/util/AbstractSequentialList +java/util/LinkedList$Node +sun/util/cldr/CLDRCalendarDataProviderImpl +sun/util/locale/provider/CalendarDataProviderImpl +sun/util/logging/PlatformLogger +sun/util/logging/PlatformLogger$Level +java/lang/System$Logger$Level +jdk/internal/logger/LazyLoggers +jdk/internal/logger/LazyLoggers$1 +jdk/internal/logger/LazyLoggers$LazyLoggerFactories +jdk/internal/logger/LoggerFinderLoader +sun/util/logging/internal/LoggingProviderImpl$JULWrapper +sun/util/logging/PlatformLogger$ConfigurableBridge$LoggerConfiguration sun/util/calendar/Gregorian$Date sun/util/calendar/BaseCalendar$Date sun/util/calendar/CalendarDate sun/util/calendar/CalendarUtils java/text/DateFormatSymbols sun/util/locale/provider/DateFormatSymbolsProviderImpl -sun/text/resources/FormatData -sun/util/resources/ParallelListResourceBundle -java/util/concurrent/atomic/AtomicMarkableReference -java/util/concurrent/atomic/AtomicMarkableReference$Pair -sun/text/resources/en/FormatData_en -sun/text/resources/en/FormatData_en_US -sun/util/resources/ParallelListResourceBundle$KeySet +sun/util/resources/LocaleData$1 +sun/util/resources/LocaleData$LocaleDataStrategy +sun/util/resources/Bundles$Strategy +sun/util/resources/Bundles +sun/util/resources/Bundles$1 +java/util/ResourceBundle$1 +jdk/internal/misc/JavaUtilResourceBundleAccess +java/util/ResourceBundle$2 +sun/util/resources/Bundles$CacheKey +sun/text/resources/cldr/FormatData +java/util/ListResourceBundle +java/util/ResourceBundle$ResourceBundleProviderHelper +sun/util/resources/Bundles$BundleReference +sun/util/resources/Bundles$CacheKeyReference java/text/NumberFormat sun/util/locale/provider/NumberFormatProviderImpl +sun/util/locale/provider/LocaleResources$ResourceReference java/text/DecimalFormatSymbols sun/util/locale/provider/DecimalFormatSymbolsProviderImpl -java/util/Currency -java/util/Currency$1 -sun/util/locale/provider/CurrencyNameProviderImpl -java/util/Currency$CurrencyNameGetter -sun/util/resources/CurrencyNames -sun/util/resources/en/CurrencyNames_en_US java/text/DecimalFormat java/text/FieldPosition java/text/DigitList -java/math/RoundingMode +java/util/Date java/text/DontCareFieldPosition java/text/DontCareFieldPosition$1 java/text/Format$FieldDelegate -sun/awt/image/GifImageDecoder -sun/awt/image/ImageDecoder -sun/awt/image/GifFrame -java/awt/image/Raster -java/awt/image/DataBufferByte -java/awt/image/DataBuffer -java/awt/image/DataBuffer$1 -sun/awt/image/SunWritableRaster$DataStealer -sun/awt/image/SunWritableRaster -java/awt/image/WritableRaster -java/awt/image/PixelInterleavedSampleModel -java/awt/image/ComponentSampleModel -java/awt/image/SampleModel -sun/awt/image/ByteInterleavedRaster -sun/awt/image/ByteComponentRaster -java/awt/image/BufferedImage -java/awt/image/WritableRenderedImage -java/awt/image/RenderedImage -java/awt/image/BufferedImage$1 -sun/awt/image/IntegerComponentRaster -sun/awt/image/BytePackedRaster -javax/swing/plaf/BorderUIResource -javax/swing/BorderFactory -javax/swing/border/BevelBorder -javax/swing/border/EtchedBorder -javax/swing/plaf/metal/MetalIconFactory -javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon -javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 -java/util/zip/ZipInputStream -java/io/PushbackInputStream -java/util/zip/ZipUtils -java/io/RandomAccessFile$1 -java/lang/Thread$State -javax/swing/SwingUtilities$SharedOwnerFrame -sun/awt/X11/XWindowAttributes -javax/swing/border/LineBorder -javax/swing/SizeRequirements -java/util/ArrayList$ListItr -javax/swing/CellRendererPane -javax/swing/RepaintManager$3 -javax/swing/JRadioButton -javax/swing/JToggleButton -java/lang/ClassFormatError -java/io/ObjectInputStream -java/io/ObjectInput -java/io/ObjectStreamConstants -sun/awt/image/BufImgSurfaceManager -sun/awt/image/BufImgSurfaceData -sun/awt/image/BufImgSurfaceData$ICMColorData -sun/java2d/x11/X11SurfaceDataProxy -sun/java2d/x11/X11SurfaceDataProxy$Bitmask -sun/java2d/StateTrackableDelegate$1 -javax/swing/JTabbedPane -java/awt/geom/RectIterator -java/awt/geom/PathIterator -javax/swing/event/ChangeListener -java/awt/Polygon -javax/swing/event/MenuListener -javax/swing/DefaultSingleSelectionModel -javax/swing/SingleSelectionModel -javax/swing/JTabbedPane$ModelListener -javax/swing/plaf/metal/MetalTabbedPaneUI -javax/swing/plaf/basic/BasicTabbedPaneUI -javax/swing/plaf/TabbedPaneUI -javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout -javax/swing/plaf/basic/BasicTabbedPaneUI$Handler -sun/reflect/MethodAccessorGenerator -sun/reflect/AccessorGenerator -sun/reflect/ClassFileConstants -sun/reflect/ByteVectorFactory -sun/reflect/ByteVectorImpl -sun/reflect/ByteVector -sun/reflect/ClassFileAssembler -sun/reflect/UTF8 -sun/reflect/Label -sun/reflect/Label$PatchInfo -sun/reflect/MethodAccessorGenerator$1 -sun/reflect/ClassDefiner -sun/reflect/ClassDefiner$1 -sun/reflect/BootstrapConstructorAccessorImpl -javax/swing/JTextField -javax/swing/JViewport -java/awt/CardLayout -javax/swing/text/Document -javax/swing/text/JTextComponent$1 -sun/swing/SwingAccessor$JTextComponentAccessor -javax/swing/text/JTextComponent$4 -com/sun/beans/util/Cache -com/sun/beans/util/Cache$Kind -com/sun/beans/util/Cache$Kind$1 -com/sun/beans/util/Cache$Kind$2 -com/sun/beans/util/Cache$Kind$3 -com/sun/beans/util/Cache$CacheEntry -javax/swing/Action -javax/swing/JTextField$NotifyAction -javax/swing/text/TextAction -javax/swing/AbstractAction -java/lang/ArrayIndexOutOfBoundsException -javax/swing/DropMode -javax/swing/text/JTextComponent$MutableCaretEvent -javax/swing/event/CaretEvent -javax/swing/plaf/metal/MetalTextFieldUI -javax/swing/plaf/basic/BasicTextFieldUI -javax/swing/plaf/basic/BasicTextUI -javax/swing/text/ViewFactory -javax/swing/plaf/TextUI -javax/swing/plaf/basic/BasicTextUI$BasicCursor -javax/swing/text/DefaultEditorKit -javax/swing/text/EditorKit -javax/swing/text/DefaultEditorKit$InsertContentAction -javax/swing/text/DefaultEditorKit$DeletePrevCharAction -javax/swing/text/DefaultEditorKit$DeleteNextCharAction -javax/swing/text/DefaultEditorKit$ReadOnlyAction -javax/swing/text/DefaultEditorKit$DeleteWordAction -javax/swing/text/DefaultEditorKit$WritableAction -javax/swing/text/DefaultEditorKit$CutAction -javax/swing/text/DefaultEditorKit$CopyAction -javax/swing/text/DefaultEditorKit$PasteAction -javax/swing/text/DefaultEditorKit$VerticalPageAction -javax/swing/text/DefaultEditorKit$PageAction -javax/swing/text/DefaultEditorKit$InsertBreakAction -javax/swing/text/DefaultEditorKit$BeepAction -javax/swing/text/DefaultEditorKit$NextVisualPositionAction -javax/swing/text/DefaultEditorKit$BeginWordAction -javax/swing/text/DefaultEditorKit$EndWordAction -javax/swing/text/DefaultEditorKit$PreviousWordAction -javax/swing/text/DefaultEditorKit$NextWordAction -javax/swing/text/DefaultEditorKit$BeginLineAction -javax/swing/text/DefaultEditorKit$EndLineAction -javax/swing/text/DefaultEditorKit$BeginParagraphAction -javax/swing/text/DefaultEditorKit$EndParagraphAction -javax/swing/text/DefaultEditorKit$BeginAction -javax/swing/text/DefaultEditorKit$EndAction -javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction -javax/swing/text/DefaultEditorKit$InsertTabAction -javax/swing/text/DefaultEditorKit$SelectWordAction -javax/swing/text/DefaultEditorKit$SelectLineAction -javax/swing/text/DefaultEditorKit$SelectParagraphAction -javax/swing/text/DefaultEditorKit$SelectAllAction -javax/swing/text/DefaultEditorKit$UnselectAction -javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction -javax/swing/text/DefaultEditorKit$DumpModelAction -javax/swing/plaf/basic/BasicTextUI$TextTransferHandler -javax/swing/TransferHandler -javax/swing/TransferHandler$TransferAction -sun/swing/UIAction -javax/swing/text/Position$Bias -javax/swing/plaf/basic/BasicTextUI$RootView -javax/swing/text/View -javax/swing/plaf/basic/BasicTextUI$UpdateHandler -javax/swing/event/DocumentListener -javax/swing/plaf/basic/BasicTextUI$DragListener -javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag -javax/swing/event/MouseInputAdapter -javax/swing/event/MouseInputListener -java/awt/event/MouseAdapter -javax/swing/plaf/metal/MetalBorders -javax/swing/plaf/BorderUIResource$CompoundBorderUIResource -javax/swing/border/CompoundBorder -javax/swing/plaf/metal/MetalBorders$TextFieldBorder -javax/swing/plaf/metal/MetalBorders$Flush3DBorder -javax/swing/plaf/basic/BasicBorders$MarginBorder -javax/swing/plaf/basic/BasicTextUI$BasicCaret -javax/swing/text/DefaultCaret -javax/swing/text/Caret -javax/swing/text/DefaultCaret$Handler -java/awt/datatransfer/ClipboardOwner -javax/swing/Timer -javax/swing/Timer$DoPostEvent -javax/swing/plaf/basic/BasicTextUI$BasicHighlighter -javax/swing/text/DefaultHighlighter -javax/swing/text/LayeredHighlighter -javax/swing/text/Highlighter -javax/swing/text/Highlighter$Highlight -javax/swing/text/DefaultHighlighter$DefaultHighlightPainter -javax/swing/text/LayeredHighlighter$LayerPainter -javax/swing/text/Highlighter$HighlightPainter -javax/swing/text/DefaultHighlighter$SafeDamager -javax/swing/ClientPropertyKey -javax/swing/ClientPropertyKey$1 -sun/awt/AWTAccessor$ClientPropertyKeyAccessor -javax/swing/TransferHandler$SwingDropTarget -java/awt/dnd/DropTargetContext -java/awt/datatransfer/SystemFlavorMap -java/awt/datatransfer/FlavorMap -java/awt/datatransfer/FlavorTable -java/awt/datatransfer/SystemFlavorMap$SoftCache -javax/swing/TransferHandler$DropHandler -javax/swing/TransferHandler$TransferSupport -javax/swing/text/PlainDocument -javax/swing/text/AbstractDocument -javax/swing/text/GapContent -javax/swing/text/AbstractDocument$Content -javax/swing/text/GapVector -javax/swing/text/GapContent$MarkVector -javax/swing/text/GapContent$MarkData -javax/swing/text/StyleContext -javax/swing/text/AbstractDocument$AttributeContext -javax/swing/text/StyleConstants -javax/swing/text/StyleConstants$CharacterConstants -javax/swing/text/AttributeSet$CharacterAttribute -javax/swing/text/StyleConstants$FontConstants -javax/swing/text/AttributeSet$FontAttribute -javax/swing/text/StyleConstants$ColorConstants -javax/swing/text/AttributeSet$ColorAttribute -javax/swing/text/StyleConstants$ParagraphConstants -javax/swing/text/AttributeSet$ParagraphAttribute -javax/swing/text/StyleContext$FontKey -javax/swing/text/SimpleAttributeSet -javax/swing/text/MutableAttributeSet -javax/swing/text/AttributeSet -javax/swing/text/SimpleAttributeSet$EmptyAttributeSet -javax/swing/text/StyleContext$NamedStyle -javax/swing/text/Style -java/util/Collections$EmptyEnumeration -javax/swing/text/StyleContext$SmallAttributeSet -java/util/Collections$3 -javax/swing/text/AbstractDocument$BidiRootElement -javax/swing/text/AbstractDocument$BranchElement -javax/swing/text/AbstractDocument$AbstractElement -javax/swing/text/Element -javax/swing/tree/TreeNode -javax/swing/text/AbstractDocument$1 -javax/swing/text/AbstractDocument$BidiElement -javax/swing/text/AbstractDocument$LeafElement -javax/swing/text/GapContent$StickyPosition -javax/swing/text/Position -javax/swing/text/StyleContext$KeyEnumeration -javax/swing/text/FieldView -javax/swing/text/PlainView -javax/swing/text/TabExpander -javax/swing/text/JTextComponent$DefaultKeymap -javax/swing/text/Keymap -javax/swing/text/JTextComponent$KeymapWrapper -javax/swing/text/JTextComponent$KeymapActionMap -javax/swing/plaf/basic/BasicTextUI$FocusAction -javax/swing/plaf/basic/BasicTextUI$TextActionWrapper -javax/swing/plaf/synth/SynthUI -javax/swing/plaf/synth/SynthConstants -javax/swing/JEditorPane -javax/swing/DefaultBoundedRangeModel -javax/swing/BoundedRangeModel -javax/swing/JTextField$ScrollRepainter -javax/swing/DefaultButtonModel -javax/swing/ButtonModel -javax/swing/AbstractButton$Handler -javax/swing/plaf/basic/BasicButtonUI -javax/swing/plaf/ButtonUI -javax/swing/plaf/metal/MetalBorders$ButtonBorder -javax/swing/plaf/basic/BasicButtonListener -javax/swing/event/AncestorListener -java/beans/VetoableChangeListener -javax/swing/plaf/metal/MetalComboBoxButton -javax/swing/plaf/basic/BasicArrowButton -javax/swing/plaf/metal/MetalScrollButton -sun/swing/ImageIconUIResource -javax/swing/GrayFilter -java/awt/image/RGBImageFilter -java/awt/image/ImageFilter -java/awt/image/FilteredImageSource -javax/swing/plaf/basic/BasicGraphicsUtils -javax/swing/ButtonGroup -org/w3c/dom/Node -org/xml/sax/SAXException -javax/xml/parsers/ParserConfigurationException -org/xml/sax/EntityResolver -java/security/NoSuchAlgorithmException -java/security/GeneralSecurityException -java/util/zip/GZIPInputStream -java/util/zip/DeflaterOutputStream -java/io/StringReader -org/xml/sax/InputSource -javax/xml/parsers/DocumentBuilderFactory -javax/xml/parsers/FactoryFinder -javax/xml/parsers/SecuritySupport -javax/xml/parsers/SecuritySupport$2 -javax/xml/parsers/SecuritySupport$5 -javax/xml/parsers/FactoryFinder$1 -javax/xml/parsers/DocumentBuilder -org/xml/sax/ErrorHandler -org/w3c/dom/Document -org/xml/sax/helpers/DefaultHandler -org/xml/sax/DTDHandler -org/xml/sax/ContentHandler -org/xml/sax/SAXNotRecognizedException -org/xml/sax/SAXNotSupportedException -org/xml/sax/Locator -org/xml/sax/SAXParseException -org/w3c/dom/NodeList -org/w3c/dom/events/EventTarget -org/w3c/dom/traversal/DocumentTraversal -org/w3c/dom/events/DocumentEvent -org/w3c/dom/ranges/DocumentRange -org/w3c/dom/Element -org/w3c/dom/CharacterData -org/w3c/dom/CDATASection -org/w3c/dom/Text -org/w3c/dom/Entity -org/xml/sax/AttributeList -org/w3c/dom/DOMException -org/w3c/dom/DocumentType -org/w3c/dom/Attr -org/w3c/dom/EntityReference -org/w3c/dom/DocumentFragment -org/w3c/dom/ProcessingInstruction -org/w3c/dom/Notation -org/w3c/dom/Comment -org/w3c/dom/events/EventException -org/w3c/dom/events/Event -org/w3c/dom/events/MutationEvent -org/w3c/dom/traversal/TreeWalker -org/w3c/dom/ranges/Range -org/w3c/dom/traversal/NodeIterator -org/w3c/dom/NamedNodeMap -java/awt/GridLayout -javax/swing/JToggleButton$ToggleButtonModel -javax/swing/plaf/metal/MetalRadioButtonUI -javax/swing/plaf/basic/BasicRadioButtonUI -javax/swing/plaf/basic/BasicToggleButtonUI -javax/swing/plaf/basic/BasicBorders -javax/swing/plaf/basic/BasicBorders$RadioButtonBorder -javax/swing/plaf/basic/BasicBorders$ButtonBorder -javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon -javax/swing/plaf/basic/BasicRadioButtonUI$KeyHandler -javax/swing/plaf/basic/BasicRadioButtonUI$SelectPreviousBtn -javax/swing/plaf/basic/BasicRadioButtonUI$SelectNextBtn -javax/swing/event/ChangeEvent -java/awt/event/ItemEvent -javax/swing/ToolTipManager -javax/swing/ToolTipManager$insideTimerAction -javax/swing/ToolTipManager$outsideTimerAction -javax/swing/ToolTipManager$stillInsideTimerAction -javax/swing/ToolTipManager$MoveBeforeEnterListener -java/awt/event/MouseMotionAdapter -javax/swing/ToolTipManager$AccessibilityKeyListener -java/awt/event/KeyAdapter -java/awt/CardLayout$Card -javax/swing/JComboBox -javax/swing/event/ListDataListener -javax/swing/JCheckBox -javax/swing/JPopupMenu -javax/swing/MenuElement -javax/swing/DefaultComboBoxModel -javax/swing/MutableComboBoxModel -javax/swing/ComboBoxModel -javax/swing/ListModel -javax/swing/AbstractListModel -javax/swing/JComboBox$1 -javax/swing/AncestorNotifier -javax/swing/plaf/metal/MetalComboBoxUI -javax/swing/plaf/basic/BasicComboBoxUI -javax/swing/plaf/ComboBoxUI -javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager -javax/swing/plaf/basic/BasicComboPopup -javax/swing/plaf/basic/ComboPopup -javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass -javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper -java/awt/event/AWTEventListenerProxy -java/awt/Toolkit$SelectiveAWTEventListener -java/awt/Toolkit$ToolkitEventMulticaster -javax/swing/plaf/basic/BasicLookAndFeel$1 -javax/swing/plaf/basic/DefaultMenuLayout -javax/swing/plaf/metal/MetalBorders$PopupMenuBorder -javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener -javax/swing/event/PopupMenuListener -javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener -javax/swing/event/MenuKeyListener -javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber -javax/swing/MenuSelectionManager -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper -javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 -java/awt/event/FocusAdapter -javax/swing/plaf/basic/BasicComboPopup$1 -javax/swing/JList -javax/swing/DefaultListSelectionModel -javax/swing/ListSelectionModel -javax/swing/plaf/basic/BasicListUI -javax/swing/plaf/ListUI -javax/swing/plaf/basic/BasicListUI$ListTransferHandler -javax/swing/DefaultListCellRenderer$UIResource -javax/swing/DefaultListCellRenderer -javax/swing/ListCellRenderer -javax/swing/plaf/basic/BasicListUI$Handler -javax/swing/event/ListSelectionListener -javax/swing/JMenu -javax/swing/JMenuItem -javax/swing/event/ListSelectionEvent -javax/swing/plaf/basic/BasicComboPopup$Handler -javax/swing/ScrollPaneLayout$UIResource -javax/swing/ScrollPaneLayout -javax/swing/ViewportLayout -javax/swing/plaf/basic/BasicViewportUI -javax/swing/plaf/ViewportUI -javax/swing/JScrollPane$ScrollBar -javax/swing/JScrollBar -java/awt/Adjustable -javax/swing/JScrollBar$ModelListener -javax/swing/plaf/metal/MetalScrollBarUI -javax/swing/plaf/basic/BasicScrollBarUI -javax/swing/plaf/ScrollBarUI -javax/swing/plaf/metal/MetalBumps -javax/swing/plaf/basic/BasicScrollBarUI$TrackListener -javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener -javax/swing/plaf/basic/BasicScrollBarUI$ModelListener -javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener -javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicScrollBarUI$Handler -javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener -javax/swing/JViewport$ViewListener -javax/swing/plaf/metal/MetalScrollPaneUI -javax/swing/plaf/basic/BasicScrollPaneUI -javax/swing/plaf/ScrollPaneUI -javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder -javax/swing/plaf/basic/BasicScrollPaneUI$Handler -javax/swing/plaf/metal/MetalScrollPaneUI$1 -javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource -javax/swing/plaf/basic/BasicComboBoxRenderer -javax/swing/plaf/metal/MetalComboBoxEditor$UIResource -javax/swing/plaf/metal/MetalComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor -javax/swing/ComboBoxEditor -javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField -javax/swing/plaf/basic/BasicComboBoxEditor$UIResource -javax/swing/text/Segment -java/text/CharacterIterator -javax/swing/plaf/metal/MetalComboBoxEditor$1 -javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder -javax/swing/JToolBar -javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener -javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler -javax/swing/plaf/basic/BasicComboBoxUI$Handler -javax/swing/plaf/metal/MetalComboBoxIcon -javax/swing/plaf/metal/MetalComboBoxButton$1 -javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager -javax/swing/JComboBox$KeySelectionManager -javax/swing/plaf/metal/MetalCheckBoxUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon -java/lang/ExceptionInInitializerError -com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI -javax/swing/JProgressBar -javax/swing/JProgressBar$ModelListener -javax/swing/plaf/metal/MetalProgressBarUI -javax/swing/plaf/basic/BasicProgressBarUI -javax/swing/plaf/ProgressBarUI -javax/swing/plaf/BorderUIResource$LineBorderUIResource -javax/swing/plaf/basic/BasicProgressBarUI$Handler -javax/swing/JTable -javax/swing/event/TableModelListener -javax/swing/event/TableColumnModelListener -javax/swing/event/CellEditorListener -javax/swing/event/RowSorterListener -javax/swing/tree/TreeModel -javax/swing/table/JTableHeader -javax/swing/table/AbstractTableModel -javax/swing/table/TableModel -javax/swing/table/TableCellRenderer -javax/swing/event/TreeExpansionListener -javax/swing/table/DefaultTableCellRenderer -javax/swing/JCheckBoxMenuItem -javax/swing/JTree -javax/swing/tree/TreeSelectionModel -javax/swing/tree/DefaultTreeCellRenderer -javax/swing/tree/TreeCellRenderer -javax/swing/table/TableCellEditor -javax/swing/CellEditor -javax/swing/JToolTip -javax/swing/table/TableColumn -javax/swing/table/DefaultTableColumnModel -javax/swing/table/TableColumnModel -javax/swing/table/DefaultTableModel -javax/swing/event/TableModelEvent -sun/swing/table/DefaultTableCellHeaderRenderer -sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon -javax/swing/plaf/basic/BasicTableHeaderUI -javax/swing/plaf/TableHeaderUI -javax/swing/plaf/basic/BasicTableHeaderUI$1 -javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler -javax/swing/DefaultCellEditor -javax/swing/tree/TreeCellEditor -javax/swing/AbstractCellEditor -javax/swing/plaf/basic/BasicTableUI -javax/swing/plaf/TableUI -javax/swing/plaf/basic/BasicTableUI$TableTransferHandler -javax/swing/plaf/basic/BasicTableUI$Handler -javax/swing/tree/DefaultTreeSelectionModel -javax/swing/tree/TreePath -javax/swing/plaf/metal/MetalTreeUI -javax/swing/plaf/basic/BasicTreeUI -javax/swing/plaf/TreeUI -javax/swing/plaf/basic/BasicTreeUI$Actions -javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler -javax/swing/plaf/metal/MetalTreeUI$LineListener -javax/swing/plaf/basic/BasicTreeUI$Handler -javax/swing/event/TreeModelListener -javax/swing/event/TreeSelectionListener -javax/swing/event/SwingPropertyChangeSupport -javax/swing/tree/VariableHeightLayoutCache -javax/swing/tree/AbstractLayoutCache -javax/swing/tree/RowMapper -javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler -javax/swing/tree/AbstractLayoutCache$NodeDimensions -javax/swing/JTree$TreeModelHandler -javax/swing/tree/VariableHeightLayoutCache$TreeStateNode -javax/swing/tree/DefaultMutableTreeNode -javax/swing/tree/MutableTreeNode -javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration -java/util/Vector$1 -javax/swing/event/TableColumnModelEvent -javax/swing/JPopupMenu$Separator -javax/swing/JSeparator -java/text/ParseException java/text/NumberFormat$Field -javax/swing/text/GapContent$InsertUndo -javax/swing/undo/AbstractUndoableEdit -javax/swing/undo/UndoableEdit -javax/swing/text/AbstractDocument$DefaultDocumentEvent -javax/swing/event/DocumentEvent -javax/swing/undo/CompoundEdit -javax/swing/event/DocumentEvent$EventType -javax/swing/text/Utilities -javax/swing/text/SegmentCache -javax/swing/text/SegmentCache$CachedSegment -javax/swing/event/DocumentEvent$ElementChange -javax/swing/event/UndoableEditEvent -javax/swing/event/UndoableEditListener -java/awt/Canvas -java/util/Locale$Category -java/util/Locale$1 -javax/swing/filechooser/FileFilter -java/io/FileWriter -javax/swing/tree/DefaultTreeModel -javax/swing/tree/DefaultTreeCellEditor -javax/swing/tree/DefaultTreeCellEditor$1 -javax/swing/tree/DefaultTreeCellEditor$DefaultTextField -javax/swing/DefaultCellEditor$1 -javax/swing/DefaultCellEditor$EditorDelegate -javax/swing/tree/DefaultTreeCellEditor$EditorContainer -javax/swing/JTree$TreeSelectionRedirector -javax/swing/JMenuItem$MenuItemFocusListener -javax/swing/plaf/basic/BasicMenuItemUI -javax/swing/plaf/MenuItemUI -javax/swing/plaf/metal/MetalBorders$MenuItemBorder -javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon -sun/swing/MenuItemLayoutHelper -javax/swing/plaf/basic/BasicMenuItemUI$Handler -javax/swing/event/MenuDragMouseListener -javax/swing/event/TreeModelEvent -javax/swing/JSplitPane -javax/swing/plaf/metal/MetalSplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneUI -javax/swing/plaf/SplitPaneUI -javax/swing/plaf/basic/BasicSplitPaneDivider -javax/swing/plaf/basic/BasicBorders$SplitPaneBorder -javax/swing/plaf/metal/MetalSplitPaneDivider -javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout -javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler -javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder -javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager -javax/swing/plaf/basic/BasicSplitPaneUI$1 -javax/swing/plaf/basic/BasicSplitPaneUI$Handler -javax/swing/plaf/metal/MetalSplitPaneDivider$1 -javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler -javax/swing/plaf/metal/MetalSplitPaneDivider$2 -javax/swing/border/TitledBorder -javax/swing/plaf/basic/BasicTextAreaUI -javax/swing/text/AbstractDocument$ElementEdit -java/util/Random -java/util/concurrent/atomic/AtomicLong -java/io/InterruptedIOException -java/net/NoRouteToHostException -java/net/BindException -javax/swing/tree/PathPlaceHolder -javax/swing/event/TreeSelectionEvent -javax/swing/JList$3 -javax/swing/JList$ListSelectionHandler -javax/swing/JSlider -javax/swing/JSlider$ModelListener -javax/swing/plaf/metal/MetalSliderUI -javax/swing/plaf/basic/BasicSliderUI -javax/swing/plaf/SliderUI -javax/swing/plaf/basic/BasicSliderUI$Actions -javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon -javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon -javax/swing/plaf/basic/BasicSliderUI$TrackListener -javax/swing/plaf/basic/BasicSliderUI$Handler -javax/swing/plaf/basic/BasicSliderUI$ScrollListener -javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener -javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler -java/util/concurrent/ConcurrentHashMap$KeyIterator -java/util/concurrent/ConcurrentHashMap$BaseIterator -java/util/concurrent/ConcurrentHashMap$Traverser -sun/font/Type1Font$1 -java/nio/channels/FileChannel$MapMode -sun/nio/ch/FileChannelImpl$Unmapper -sun/nio/ch/Util$4 -java/nio/DirectByteBufferR -sun/nio/cs/US_ASCII$Decoder -sun/font/SunFontManager$10 -java/util/concurrent/ConcurrentHashMap$ValueIterator -javax/swing/DefaultListModel -javax/swing/event/ListDataEvent -javax/sound/sampled/DataLine -javax/sound/sampled/Line -javax/sound/sampled/LineUnavailableException -javax/sound/sampled/UnsupportedAudioFileException -javax/sound/sampled/Line$Info -javax/sound/sampled/DataLine$Info -javax/sound/sampled/Control$Type -javax/sound/sampled/FloatControl$Type -javax/swing/JMenuBar -javax/swing/plaf/basic/BasicMenuBarUI -javax/swing/plaf/MenuBarUI -javax/swing/plaf/metal/MetalBorders$MenuBarBorder -javax/swing/plaf/basic/BasicMenuBarUI$Handler -javax/swing/KeyboardManager -javax/swing/JRadioButtonMenuItem -javax/swing/JMenu$MenuChangeListener -javax/swing/plaf/basic/BasicMenuUI -javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon -javax/swing/plaf/basic/BasicMenuUI$Handler -javax/swing/JMenuItem$AccessibleJMenuItem -javax/swing/AbstractButton$AccessibleAbstractButton -javax/accessibility/AccessibleAction -javax/accessibility/AccessibleValue -javax/accessibility/AccessibleText -javax/accessibility/AccessibleExtendedComponent -javax/accessibility/AccessibleComponent -javax/swing/JComponent$AccessibleJComponent -java/awt/Container$AccessibleAWTContainer -java/awt/Component$AccessibleAWTComponent -javax/accessibility/AccessibleContext$1 -sun/awt/AWTAccessor$AccessibleContextAccessor -javax/accessibility/AccessibleRelationSet -javax/swing/JMenu$WinListener -java/awt/event/WindowAdapter -javax/swing/plaf/metal/MetalPopupMenuSeparatorUI -javax/swing/plaf/metal/MetalSeparatorUI -javax/swing/plaf/basic/BasicSeparatorUI -javax/swing/plaf/SeparatorUI -javax/accessibility/AccessibleState -javax/accessibility/AccessibleBundle -javax/swing/plaf/basic/BasicCheckBoxMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon -javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem -javax/swing/plaf/basic/BasicRadioButtonMenuItemUI -javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon -java/awt/event/ContainerEvent -sun/awt/image/ImageDecoder$1 -java/awt/im/InputContext -sun/awt/im/InputMethodContext -java/awt/im/spi/InputMethodContext -java/awt/im/InputMethodRequests -sun/awt/im/InputContext -sun/awt/im/InputMethodManager -sun/awt/im/ExecutableInputMethodManager -sun/awt/X11/XInputMethodDescriptor -sun/awt/X11InputMethodDescriptor -java/awt/im/spi/InputMethodDescriptor -sun/awt/im/InputMethodLocator -sun/awt/im/ExecutableInputMethodManager$3 -javax/swing/JTabbedPane$Page -java/net/DatagramSocket -java/net/MulticastSocket -java/net/DatagramPacket -java/net/DatagramPacket$1 -java/net/DefaultDatagramSocketImplFactory -java/net/PlainDatagramSocketImpl -java/net/AbstractPlainDatagramSocketImpl -java/net/DatagramSocketImpl -java/net/AbstractPlainDatagramSocketImpl$1 -java/net/NetworkInterface -java/net/NetworkInterface$1 -java/net/InterfaceAddress -java/net/DefaultInterface -java/net/DatagramSocket$1 -java/net/SocketOption -sun/net/ResourceManager -java/text/Collator -sun/util/locale/provider/CollatorProviderImpl -java/util/Collections$UnmodifiableList$1 -sun/text/resources/CollationData -java/text/RuleBasedCollator -java/text/RBCollationTables -java/net/ServerSocket -java/text/RBTableBuilder -java/text/RBCollationTables$BuildAPI -sun/text/IntHashtable -sun/text/UCompactIntArray -sun/text/normalizer/NormalizerImpl -sun/text/normalizer/ICUData -sun/text/normalizer/NormalizerDataReader -sun/text/normalizer/ICUBinary$Authenticate -sun/text/normalizer/ICUBinary -sun/text/normalizer/NormalizerImpl$FCDTrieImpl -sun/text/normalizer/Trie$DataManipulate -sun/text/normalizer/NormalizerImpl$NormTrieImpl -sun/text/normalizer/NormalizerImpl$AuxTrieImpl -sun/text/normalizer/IntTrie -sun/text/normalizer/Trie -sun/text/normalizer/CharTrie -sun/text/normalizer/CharTrie$FriendAgent -sun/text/normalizer/UnicodeSet -sun/text/normalizer/UnicodeMatcher -sun/text/normalizer/NormalizerImpl$DecomposeArgs -java/text/MergeCollation -java/text/PatternEntry$Parser -java/text/PatternEntry -java/text/EntryPair -sun/text/ComposedCharIter -sun/text/normalizer/UTF16 -sun/net/www/protocol/http/Handler -java/security/SignatureException -java/security/InvalidKeyException -java/security/KeyException -java/security/Signature -java/security/SignatureSpi -java/io/ObjectInputStream$BlockDataInputStream -java/io/ObjectInputStream$PeekInputStream -java/io/ObjectInputStream$HandleTable -java/io/ObjectInputStream$HandleTable$HandleList -java/io/ObjectInputStream$ValidationList -java/io/Bits -java/io/ObjectStreamClass -java/io/ObjectOutputStream -java/io/ObjectOutput -sun/security/provider/DSAPublicKey -java/security/interfaces/DSAPublicKey -java/security/interfaces/DSAKey -java/security/PublicKey -java/security/Key -sun/security/x509/X509Key -java/io/ObjectStreamClass$Caches -java/io/ObjectStreamClass$WeakClassKey -java/io/ObjectStreamClass$EntryFuture -java/lang/reflect/Proxy -java/lang/reflect/InvocationHandler -java/lang/reflect/WeakCache -java/lang/reflect/Proxy$KeyFactory -java/lang/reflect/Proxy$ProxyClassFactory -java/io/Externalizable -java/io/ObjectStreamClass$2 -java/util/ComparableTimSort -sun/security/x509/AlgorithmId -sun/security/util/DerEncoder -sun/reflect/SerializationConstructorAccessorImpl -sun/security/util/BitArray -sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl -java/io/ObjectStreamClass$FieldReflectorKey -java/io/ObjectStreamClass$FieldReflector -java/io/ObjectStreamClass$1 -java/io/DataOutputStream -java/io/ObjectStreamClass$MemberSignature -java/io/ObjectStreamClass$3 -sun/security/util/DerOutputStream -java/io/ObjectStreamClass$4 -java/io/ObjectStreamClass$5 -sun/security/util/DerValue -java/security/MessageDigest -java/security/MessageDigestSpi -sun/security/jca/GetInstance -sun/security/jca/Providers -java/lang/InheritableThreadLocal -sun/security/jca/ProviderList -sun/security/jca/ProviderConfig -java/math/BigInteger -java/security/Provider -sun/security/jca/ProviderList$3 -sun/security/jca/ProviderList$1 -java/security/Provider$ServiceKey -java/security/Provider$EngineDescription -java/security/interfaces/DSAParams -sun/security/jca/ProviderList$2 -sun/security/jca/ProviderConfig$2 -java/io/ObjectStreamClass$ClassDataSlot -sun/security/provider/Sun -java/io/SerialCallbackContext -sun/security/provider/SunEntries -sun/security/provider/SunEntries$1 -sun/security/provider/NativePRNG -java/security/SecureRandomSpi -sun/security/provider/NativePRNG$Variant -sun/security/util/DerInputStream -sun/security/provider/NativePRNG$1 -sun/security/provider/NativePRNG$2 -sun/security/provider/NativePRNG$RandomIO -sun/security/util/DerInputBuffer -sun/security/provider/NativePRNG$Blocking -sun/security/provider/NativePRNG$NonBlocking -sun/security/util/ObjectIdentifier -java/security/Provider$Service -java/security/Provider$UString -sun/security/provider/SHA -sun/security/provider/DigestBase -sun/security/jca/GetInstance$Instance -java/security/MessageDigest$Delegate -sun/security/provider/ByteArrayAccess -java/io/ObjectOutputStream$BlockDataOutputStream -java/security/AlgorithmParameters -java/io/ObjectOutputStream$HandleTable -java/io/ObjectOutputStream$ReplaceTable -java/security/AlgorithmParametersSpi -sun/security/provider/DSAParameters -sun/security/util/ByteArrayLexOrder -sun/security/util/ByteArrayTagOrder -sun/security/util/DerIndefLenConverter -java/io/ObjectStreamClass$ExceptionInfo -java/io/ObjectInputStream$GetFieldImpl -java/io/ObjectInputStream$GetField -java/math/BigInteger$UnsafeHolder -sun/security/jca/ServiceId -sun/security/jca/ProviderList$ServiceList -sun/security/jca/ProviderList$ServiceList$1 -java/security/Signature$Delegate -java/util/ArrayList$SubList -java/util/ArrayList$SubList$1 -java/security/interfaces/DSAPrivateKey -java/security/PrivateKey -javax/security/auth/Destroyable -sun/security/provider/DSA$SHA1withDSA -sun/security/provider/DSA$LegacyDSA -sun/security/provider/DSA -java/security/spec/DSAParameterSpec -java/security/spec/AlgorithmParameterSpec -java/math/MutableBigInteger -java/math/SignedMutableBigInteger -javax/swing/TimerQueue -java/util/concurrent/DelayQueue -java/util/concurrent/BlockingQueue -java/util/AbstractQueue -java/util/PriorityQueue -javax/swing/TimerQueue$1 -javax/swing/TimerQueue$DelayedTimer -java/util/concurrent/Delayed -java/util/concurrent/TimeUnit -java/util/concurrent/TimeUnit$1 -java/util/concurrent/TimeUnit$2 -java/util/concurrent/TimeUnit$3 -java/util/concurrent/TimeUnit$4 -java/util/concurrent/TimeUnit$5 -java/util/concurrent/TimeUnit$6 -java/util/concurrent/TimeUnit$7 -java/awt/Window$1DisposeAction -java/awt/EventQueue$1AWTInvocationLock -sun/awt/X11/XUnmapEvent -java/awt/LightweightDispatcher$2 -java/awt/Component$FlipBufferStrategy -java/awt/SentEvent -sun/java2d/cmm/CMSManager -java/awt/image/DataBufferInt -java/awt/image/SinglePixelPackedSampleModel -sun/awt/image/IntegerInterleavedRaster -sun/awt/X11/XDropTargetRegistry -sun/awt/X11/XEmbeddedFramePeer -sun/awt/X11/XDragAndDropProtocols -sun/awt/X11/XDropTargetContextPeer -sun/awt/dnd/SunDropTargetContextPeer -java/awt/dnd/peer/DropTargetContextPeer -java/awt/datatransfer/Transferable -sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl -sun/awt/X11/XDropTargetProtocolListener -sun/awt/X11/XDnDDragSourceProtocol -sun/awt/X11/XDragSourceProtocol -sun/awt/X11/MotifDnDDragSourceProtocol -sun/awt/X11/XDnDDropTargetProtocol -sun/awt/X11/XDropTargetProtocol -sun/awt/X11/MotifDnDDropTargetProtocol -sun/awt/X11/XErrorHandler$VerifyChangePropertyHandler -sun/awt/X11/XDnDConstants -sun/awt/X11/XSelection -sun/awt/X11/XSelection$IncrementalTransferHandler -sun/awt/X11/XSelection$SelectionEventHandler -sun/awt/X11/MotifDnDConstants -javax/swing/JLayer -javax/swing/JInternalFrame -javax/swing/KeyboardManager$ComponentKeyStrokePair -sun/awt/EmbeddedFrame -sun/swing/MenuItemLayoutHelper$RectSize -javax/swing/JTable$2 -javax/swing/JTable$Resizable3 -javax/swing/JTable$Resizable2 -javax/swing/JTable$5 -javax/swing/event/AncestorEvent -java/awt/Label -sun/awt/X11/XLabelPeer -java/awt/peer/LabelPeer -sun/awt/TimedWindowEvent -java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent -sun/awt/CausedFocusEvent$Cause -java/awt/KeyboardFocusManager$HeavyweightFocusRequest -java/awt/DefaultKeyboardFocusManager$TypeAheadMarker -java/awt/KeyboardFocusManager$LightweightFocusRequest -sun/awt/CausedFocusEvent -java/awt/KeyboardFocusManager$3 -sun/awt/X11/XInputMethod -sun/awt/X11InputMethod -sun/awt/im/InputMethodAdapter -java/awt/im/spi/InputMethod -java/awt/Event -java/net/Authenticator -java/lang/Throwable$WrappedPrintStream -java/lang/Throwable$PrintStreamOrWriter -sun/awt/image/PNGImageDecoder -sun/awt/image/PNGFilterInputStream -sun/util/locale/provider/TimeZoneNameUtility -sun/util/locale/provider/TimeZoneNameProviderImpl -sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter -sun/util/resources/TimeZoneNames -sun/util/resources/TimeZoneNamesBundle -sun/util/resources/en/TimeZoneNames_en -sun/awt/image/OffScreenImage -java/lang/ProcessBuilder -java/lang/ProcessImpl -java/lang/UNIXProcess -java/lang/Process -java/lang/UNIXProcess$Platform -java/lang/UNIXProcess$LaunchMechanism -java/util/EnumSet -java/util/RegularEnumSet -sun/java2d/x11/X11SurfaceDataProxy$Opaque -java/lang/UNIXProcess$1 -java/util/concurrent/Executor -java/util/concurrent/ThreadFactory -java/util/concurrent/Executors -java/util/concurrent/ThreadPoolExecutor -java/util/concurrent/AbstractExecutorService -java/util/concurrent/ExecutorService -java/util/concurrent/ThreadPoolExecutor$AbortPolicy -java/util/concurrent/RejectedExecutionHandler -java/util/concurrent/SynchronousQueue -java/util/concurrent/SynchronousQueue$TransferStack -java/util/concurrent/SynchronousQueue$Transferer -java/util/concurrent/SynchronousQueue$TransferStack$SNode -java/lang/UNIXProcess$ProcessPipeOutputStream -java/lang/UNIXProcess$ProcessPipeInputStream -java/util/concurrent/ThreadPoolExecutor$Worker -java/lang/ProcessBuilder$NullOutputStream -java/io/FilterReader -sun/awt/X11/XClipboard -sun/awt/X11/OwnershipListener -sun/awt/datatransfer/SunClipboard -java/awt/datatransfer/Clipboard -java/io/EOFException -java/util/jar/JarFile$JarEntryIterator -java/util/zip/ZipFile$ZipEntryIterator -java/lang/IllegalAccessError -java/text/MessageFormat -java/text/MessageFormat$Field -java/util/Hashtable$ValueCollection -javax/swing/event/CaretListener -javax/swing/plaf/metal/MetalButtonUI -javax/swing/plaf/metal/MetalToggleButtonUI -javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder -javax/swing/event/MenuEvent -javax/swing/border/MatteBorder -sun/font/StandardGlyphVector -java/awt/font/GlyphVector -sun/font/StandardGlyphVector$GlyphStrike -sun/font/CoreMetrics -sun/font/FontLineMetrics -java/awt/font/LineMetrics -javax/swing/JToolBar$DefaultToolBarLayout -javax/swing/plaf/metal/MetalToolBarUI -javax/swing/plaf/basic/BasicToolBarUI -javax/swing/plaf/ToolBarUI -javax/swing/plaf/metal/MetalBorders$ToolBarBorder -javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder -javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder -javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder -javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener -javax/swing/plaf/basic/BasicToolBarUI$DockingListener -javax/swing/plaf/basic/BasicToolBarUI$Handler -javax/swing/JToolBar$Separator -javax/swing/plaf/basic/BasicToolBarSeparatorUI -java/awt/event/AdjustmentEvent -java/awt/MenuBar -sun/awt/X11/XErrorEvent -# eea35d9d56e0006e +java/util/Formatter +java/util/regex/Pattern +java/util/regex/Pattern$1 +java/util/regex/Pattern$Node +java/util/regex/Pattern$LastNode +java/util/regex/Pattern$GroupHead +java/util/regex/Pattern$BmpCharPredicate +java/util/regex/Pattern$CharPredicate +java/util/regex/Pattern$BmpCharProperty +java/util/regex/Pattern$CharProperty +java/util/regex/Pattern$GroupTail +java/util/regex/CharPredicates +java/util/regex/Pattern$BmpCharPropertyGreedy +java/util/regex/Pattern$CharPropertyGreedy +java/util/regex/Pattern$Ques +java/util/regex/Pattern$Qtype +java/util/regex/Pattern$BranchConn +java/util/regex/Pattern$Branch +java/util/regex/Pattern$BitClass +java/util/regex/Pattern$Slice +java/util/regex/Pattern$SliceNode +java/util/regex/Pattern$Begin +java/util/regex/Pattern$First +java/util/regex/Pattern$Start +java/util/regex/Pattern$TreeInfo +java/util/regex/Matcher +java/util/regex/MatchResult +java/util/regex/IntHashSet +java/util/regex/ASCII +java/util/Formatter$FormatSpecifier +java/util/Formatter$FormatString +java/util/Formatter$Flags +java/util/Formatter$Conversion +java/util/Formattable +java/util/logging/LogRecord +java/util/logging/ConsoleHandler +java/util/logging/StreamHandler +java/util/logging/SimpleFormatter +java/util/logging/Formatter +jdk/internal/logger/SurrogateLogger +jdk/internal/logger/SimpleConsoleLogger +jdk/internal/logger/SimpleConsoleLogger$Formatting +java/util/logging/ErrorManager +java/util/logging/Handler$1 +java/util/logging/StreamHandler$1 +java/util/logging/LogManager$CloseOnReset +java/time/ZonedDateTime +java/time/chrono/ChronoZonedDateTime +java/util/logging/LogRecord$CallerFinder +java/lang/StackWalker$Option +java/lang/StackStreamFactory +java/lang/StackWalker$ExtendedOption +java/lang/StackStreamFactory$StackFrameTraverser +java/lang/StackStreamFactory$WalkerState +java/lang/StackStreamFactory$1 +java/lang/StackStreamFactory$StackFrameTraverser$StackFrameBuffer +java/lang/StackStreamFactory$FrameBuffer +java/util/stream/ReferencePipeline$2 +java/util/stream/ReferencePipeline$2$1 +java/util/logging/Level$RbAccess +java/util/ResourceBundle$CacheKey +java/util/ResourceBundle$KeyElementReference +java/util/ResourceBundle$CacheKeyReference +java/util/ResourceBundle$3 +sun/util/logging/resources/logging +java/util/ResourceBundle$BundleReference +jdk/internal/module/Checks +java/util/Formatter$DateTime +java/util/Formatter$FixedString +java/time/ZonedDateTime$1 +sun/text/resources/cldr/FormatData_en +java/util/IdentityHashMap$KeyIterator +java/util/IdentityHashMap$IdentityHashMapIterator Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/cmm/CIEXYZ.pf and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/cmm/CIEXYZ.pf differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/cmm/GRAY.pf and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/cmm/GRAY.pf differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/cmm/LINEAR_RGB.pf and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/cmm/LINEAR_RGB.pf differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/cmm/PYCC.pf and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/cmm/PYCC.pf differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/cmm/sRGB.pf and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/cmm/sRGB.pf differ diff -Nru pycharm-2018.3.5/jre64/lib/content-types.properties pycharm-2019.1/jre64/lib/content-types.properties --- pycharm-2018.3.5/jre64/lib/content-types.properties 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/content-types.properties 1970-01-01 00:00:00.000000000 +0000 @@ -1,280 +0,0 @@ -#sun.net.www MIME content-types table -# -# Property fields: -# -# ::= 'description' '=' -# ::= 'file_extensions' '=' -# ::= 'icon' '=' -# ::= 'browser' | 'application' | 'save' | 'unknown' -# ::= 'application' '=' -# - -# -# The "we don't know anything about this data" type(s). -# Used internally to mark unrecognized types. -# -content/unknown: description=Unknown Content -unknown/unknown: description=Unknown Data Type - -# -# The template we should use for temporary files when launching an application -# to view a document of given type. -# -temp.file.template: /tmp/%s - -# -# The "real" types. -# -application/octet-stream: \ - description=Generic Binary Stream;\ - file_extensions=.saveme,.dump,.hqx,.arc,.o,.a,.bin,.exe,.z,.gz - -application/oda: \ - description=ODA Document;\ - file_extensions=.oda - -application/pdf: \ - description=Adobe PDF Format;\ - file_extensions=.pdf - -application/postscript: \ - description=Postscript File;\ - file_extensions=.eps,.ai,.ps;\ - icon=ps;\ - action=application;\ - application=imagetool %s - -application/x-dvi: \ - description=TeX DVI File;\ - file_extensions=.dvi;\ - action=application;\ - application=xdvi %s - -application/x-hdf: \ - description=Hierarchical Data Format;\ - file_extensions=.hdf;\ - action=save - -application/x-latex: \ - description=LaTeX Source;\ - file_extensions=.latex - -application/x-netcdf: \ - description=Unidata netCDF Data Format;\ - file_extensions=.nc,.cdf;\ - action=save - -application/x-tex: \ - description=TeX Source;\ - file_extensions=.tex - -application/x-texinfo: \ - description=Gnu Texinfo;\ - file_extensions=.texinfo,.texi - -application/x-troff: \ - description=Troff Source;\ - file_extensions=.t,.tr,.roff;\ - action=application;\ - application=xterm -title troff -e sh -c \"nroff %s | col | more -w\" - -application/x-troff-man: \ - description=Troff Manpage Source;\ - file_extensions=.man;\ - action=application;\ - application=xterm -title troff -e sh -c \"nroff -man %s | col | more -w\" - -application/x-troff-me: \ - description=Troff ME Macros;\ - file_extensions=.me;\ - action=application;\ - application=xterm -title troff -e sh -c \"nroff -me %s | col | more -w\" - -application/x-troff-ms: \ - description=Troff MS Macros;\ - file_extensions=.ms;\ - action=application;\ - application=xterm -title troff -e sh -c \"nroff -ms %s | col | more -w\" - -application/x-wais-source: \ - description=Wais Source;\ - file_extensions=.src,.wsrc - -application/zip: \ - description=Zip File;\ - file_extensions=.zip;\ - icon=zip;\ - action=save - -application/x-bcpio: \ - description=Old Binary CPIO Archive;\ - file_extensions=.bcpio; action=save - -application/x-cpio: \ - description=Unix CPIO Archive;\ - file_extensions=.cpio; action=save - -application/x-gtar: \ - description=Gnu Tar Archive;\ - file_extensions=.gtar;\ - icon=tar;\ - action=save - -application/x-shar: \ - description=Shell Archive;\ - file_extensions=.sh,.shar;\ - action=save - -application/x-sv4cpio: \ - description=SVR4 CPIO Archive;\ - file_extensions=.sv4cpio; action=save - -application/x-sv4crc: \ - description=SVR4 CPIO with CRC;\ - file_extensions=.sv4crc; action=save - -application/x-tar: \ - description=Tar Archive;\ - file_extensions=.tar;\ - icon=tar;\ - action=save - -application/x-ustar: \ - description=US Tar Archive;\ - file_extensions=.ustar;\ - action=save - -audio/basic: \ - description=Basic Audio;\ - file_extensions=.snd,.au;\ - icon=audio;\ - action=application;\ - application=audiotool %s - -audio/x-aiff: \ - description=Audio Interchange Format File;\ - file_extensions=.aifc,.aif,.aiff;\ - icon=aiff - -audio/x-wav: \ - description=Wav Audio;\ - file_extensions=.wav;\ - icon=wav - -image/gif: \ - description=GIF Image;\ - file_extensions=.gif;\ - icon=gif;\ - action=browser - -image/ief: \ - description=Image Exchange Format;\ - file_extensions=.ief - -image/jpeg: \ - description=JPEG Image;\ - file_extensions=.jfif,.jfif-tbnl,.jpe,.jpg,.jpeg;\ - icon=jpeg;\ - action=browser;\ - application=imagetool %s - -image/tiff: \ - description=TIFF Image;\ - file_extensions=.tif,.tiff;\ - icon=tiff - -image/vnd.fpx: \ - description=FlashPix Image;\ - file_extensions=.fpx,.fpix - -image/x-cmu-rast: \ - description=CMU Raster Image;\ - file_extensions=.ras - -image/x-portable-anymap: \ - description=PBM Anymap Format;\ - file_extensions=.pnm - -image/x-portable-bitmap: \ - description=PBM Bitmap Format;\ - file_extensions=.pbm - -image/x-portable-graymap: \ - description=PBM Graymap Format;\ - file_extensions=.pgm - -image/x-portable-pixmap: \ - description=PBM Pixmap Format;\ - file_extensions=.ppm - -image/x-rgb: \ - description=RGB Image;\ - file_extensions=.rgb - -image/x-xbitmap: \ - description=X Bitmap Image;\ - file_extensions=.xbm,.xpm - -image/x-xwindowdump: \ - description=X Window Dump Image;\ - file_extensions=.xwd - -image/png: \ - description=PNG Image;\ - file_extensions=.png;\ - icon=png;\ - action=browser - -image/bmp: \ - description=Bitmap Image;\ - file_extensions=.bmp; - -text/html: \ - description=HTML Document;\ - file_extensions=.htm,.html;\ - icon=html - -text/plain: \ - description=Plain Text;\ - file_extensions=.text,.c,.cc,.c++,.h,.pl,.txt,.java,.el;\ - icon=text;\ - action=browser - -text/tab-separated-values: \ - description=Tab Separated Values Text;\ - file_extensions=.tsv - -text/x-setext: \ - description=Structure Enhanced Text;\ - file_extensions=.etx - -video/mpeg: \ - description=MPEG Video Clip;\ - file_extensions=.mpg,.mpe,.mpeg;\ - icon=mpeg;\ - action=application;\ - application=mpeg_play %s - -video/quicktime: \ - description=QuickTime Video Clip;\ - file_extensions=.mov,.qt - -application/x-troff-msvideo: \ - description=AVI Video;\ - file_extensions=.avi;\ - icon=avi - -video/x-sgi-movie: \ - description=SGI Movie;\ - file_extensions=.movie,.mv - -message/rfc822: \ - description=Internet Email Message;\ - file_extensions=.mime - -application/xml: \ - description=XML document;\ - file_extensions=.xml - - - Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/ct.sym and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/ct.sym differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/currency.data and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/currency.data differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/ext/cldrdata.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/ext/cldrdata.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/ext/dnsns.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/ext/dnsns.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/ext/jaccess.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/ext/jaccess.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/ext/jfxrt.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/ext/jfxrt.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/ext/localedata.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/ext/localedata.jar differ diff -Nru pycharm-2018.3.5/jre64/lib/ext/meta-index pycharm-2019.1/jre64/lib/ext/meta-index --- pycharm-2018.3.5/jre64/lib/ext/meta-index 2019-01-29 16:01:13.000000000 +0000 +++ pycharm-2019.1/jre64/lib/ext/meta-index 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -% VERSION 2 -% WARNING: this file is auto-generated; do not edit -% UNSUPPORTED: this file and its format may change and/or -% may be removed in a future release -! cldrdata.jar -sun/text -sun/util -# dnsns.jar -META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor -sun/net -! jaccess.jar -com/sun/java/accessibility/ -# localedata.jar -sun/text -sun/util -# nashorn.jar -jdk/nashorn -META-INF/services/javax.script.ScriptEngineFactory -jdk/internal -! sunec.jar -sun/security -! sunjce_provider.jar -com/sun/crypto/ -! sunpkcs11.jar -sun/security -# zipfs.jar -META-INF/services/java.nio.file.spi.FileSystemProvider -com/sun/nio/ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/ext/nashorn.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/ext/nashorn.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/ext/sunec.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/ext/sunec.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/ext/sunjce_provider.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/ext/sunjce_provider.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/ext/sunpkcs11.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/ext/sunpkcs11.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/ext/zipfs.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/ext/zipfs.jar differ diff -Nru pycharm-2018.3.5/jre64/lib/flavormap.properties pycharm-2019.1/jre64/lib/flavormap.properties --- pycharm-2018.3.5/jre64/lib/flavormap.properties 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/flavormap.properties 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ -# -# This properties file is used to initialize the default -# java.awt.datatransfer.SystemFlavorMap. It contains the X11 platform-specific, -# default mappings between common X11 selection atoms and platform-independent -# MIME type strings, which will be converted into -# java.awt.datatransfer.DataFlavors. -# -# These default mappings may be augmented by specifying the -# -# AWT.DnD.flavorMapFileURL -# -# property in the appropriate awt.properties file. The specified properties URL -# will be loaded into the SystemFlavorMap. -# -# The standard format is: -# -# = -# -# should be a string identifier that the native platform will -# recognize as a valid data format. should specify both a MIME -# primary type and a MIME subtype separated by a '/'. The MIME type may include -# parameters, where each parameter is a key/value pair separated by '=', and -# where each parameter to the MIME type is separated by a ';'. -# -# Because SystemFlavorMap implements FlavorTable, developers are free to -# duplicate both native keys and DataFlavor values. If a mapping contains a -# duplicate key or value, earlier mappings which included this key or value -# will be preferred. -# -# Mappings whose values specify DataFlavors with primary MIME types of -# "text", and which support the charset parameter, should specify the exact -# format in which the native platform expects the data. The "charset" -# parameter specifies the char to byte encoding, the "eoln" parameter -# specifies the end-of-line marker, and the "terminators" parameter specifies -# the number of terminating NUL bytes. Note that "eoln" and "terminators" -# are not standardized MIME type parameters. They are specific to this file -# format ONLY. They will not appear in any of the DataFlavors returned by the -# SystemFlavorMap at the Java level. -# -# If the "charset" parameter is omitted, or has zero length, the platform -# default encoding is assumed. If the "eoln" parameter is omitted, or has -# zero length, "\n" is assumed. If the "terminators" parameter is omitted, -# or has a value less than zero, zero is assumed. -# -# Upon initialization, the data transfer subsystem will record the specified -# details of the native text format, but the default SystemFlavorMap will -# present a large set of synthesized DataFlavors which map, in both -# directions, to the native. After receiving data from the application in one -# of the synthetic DataFlavors, the data transfer subsystem will transform -# the data stream into the format specified in this file before passing the -# transformed stream to the native system. -# -# Mappings whose values specify DataFlavors with primary MIME types of -# "text", but which do not support the charset parameter, will be treated as -# opaque, 8-bit data. They will not undergo any transformation process, and -# any "charset", "eoln", or "terminators" parameters specified in this file -# will be ignored. -# -# See java.awt.datatransfer.DataFlavor.selectBestTextFlavor for a list of -# text flavors which support the charset parameter. - -UTF8_STRING=text/plain;charset=UTF-8;eoln="\n";terminators=0 - -# The COMPOUND_TEXT support for inter-client text transfer is disabled by -# default. The reason is that many native applications prefer this format over -# other native text formats, but are unable to decode the textual data in this -# format properly. This results in java-to-native text transfer failures. -# To enable the COMPOUND_TEXT support for this JRE installation uncomment -# the line below. - -# COMPOUND_TEXT=text/plain;charset=x-compound-text;eoln="\n";terminators=0 - -TEXT=text/plain;eoln="\n";terminators=0 -STRING=text/plain;charset=iso8859-1;eoln="\n";terminators=0 -FILE_NAME=application/x-java-file-list;class=java.util.List -text/uri-list=application/x-java-file-list;class=java.util.List -PNG=image/x-java-image;class=java.awt.Image -JFIF=image/x-java-image;class=java.awt.Image Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/fontconfig.bfc and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/fontconfig.bfc differ diff -Nru pycharm-2018.3.5/jre64/lib/fontconfig.properties.src pycharm-2019.1/jre64/lib/fontconfig.properties.src --- pycharm-2018.3.5/jre64/lib/fontconfig.properties.src 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/fontconfig.properties.src 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -# Version - -version=1 - -# Component Font Mappings - - -serif.plain.latin-1=-b&h-droidserif-medium-r-normal--*-%d-*-*-p-*-iso8859-1 -serif.bold.latin-1=-b&h-droidserif-demibold-r-normal--*-%d-*-*-p-*-iso8859-1 -serif.italic.latin-1=-b&h-droidserif-medium-i-normal--*-%d-*-*-p-*-iso8859-1 -serif.bolditalic.latin-1=-b&h-droidserif-demibold-i-normal--*-%d-*-*-p-*-iso8859-1 - -sansserif.plain.latin-1=-b&h-droidsans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1 -sansserif.bold.latin-1=-b&h-droidsans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1 -sansserif.italic.latin-1=-b&h-droidsans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1 -sansserif.bolditalic.latin-1=-b&h-droidsans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1 - -monospaced.plain.latin-1=-b&h-droidsansmono-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 -monospaced.bold.latin-1=-b&h-droidsansmono-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 -monospaced.italic.latin-1=-b&h-droidsansmono-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1 -monospaced.bolditalic.latin-1=-b&h-droidsansmono-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1 - -dialog.plain.latin-1=-b&h-droidsans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1 -dialog.bold.latin-1=-b&h-droidsans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1 -dialog.italic.latin-1=-b&h-droidsans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1 -dialog.bolditalic.latin-1=-b&h-droidsans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1 - -dialoginput.plain.latin-1=-b&h-droidsansmono-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1 -dialoginput.bold.latin-1=-b&h-droidsansmono-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1 -dialoginput.italic.latin-1=-b&h-droidsansmono-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1 -dialoginput.bolditalic.latin-1=-b&h-droidsansmono-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1 - -# Search Sequences - -sequence.allfonts=latin-1 - -# Exclusion Ranges - -# Font File Names - - - diff -Nru pycharm-2018.3.5/jre64/lib/fonts/LICENSE.txt pycharm-2019.1/jre64/lib/fonts/LICENSE.txt --- pycharm-2018.3.5/jre64/lib/fonts/LICENSE.txt 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/fonts/LICENSE.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -Copyright 2000-2016 JetBrains s.r.o. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff -Nru pycharm-2018.3.5/jre64/lib/hijrah-config-umalqura.properties pycharm-2019.1/jre64/lib/hijrah-config-umalqura.properties --- pycharm-2018.3.5/jre64/lib/hijrah-config-umalqura.properties 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/hijrah-config-umalqura.properties 1970-01-01 00:00:00.000000000 +0000 @@ -1,369 +0,0 @@ -# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. Oracle designates this -# particular file as subject to the "Classpath" exception as provided -# by Oracle in the LICENSE file that accompanied this code. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# -# This properties file defines a Hijrah calendar variant. -# -# Fields: -# -# ::= 'version' '=' -# ::= 'id' '=' -# ::= 'type' '=' -# ::= 'iso-start' '=' -# ::= '=' -# -# version ... (Required) -# -# id ... (Required) -# Identifies the Java Chronology -# -# type ... (Required) -# Identifies the type of calendar in the standard calendar ID scheme -# iso-start ... (Required) -# Specifies the corresponding ISO date to the first Hijrah day -# in the defined range of dates -# -# year ... (Required) -# Number of days for each month of a Hijrah year -# * Each line defines a year. The years must be in chronological -# order and no gap is allowed. -# * Each line is in the form indicated above. is a Hijrah year and -# nn is the number of days for a month listed in the order of the months. -# * Each year must have 12 months. -# * Each month should be 29 or 30 days long. -# * There must be one or more space characters between the months. -# - -# Version of this definition -version=1.8.0_1 - -# Java chronology ID -id=Hijrah-umalqura - -# Standard calendar type specification -type=islamic-umalqura - -# defines the corresponding ISO date to the earliest Hijrah date -iso-start=1882-11-12 - -# 1 2 3 4 5 6 7 8 9 10 11 12 -1300=30 29 30 29 30 29 30 29 30 29 30 29 -1301=30 30 29 30 29 30 29 30 29 30 29 29 -1302=30 30 30 29 30 30 29 29 30 29 29 30 -1303=29 30 30 29 30 30 29 30 29 30 29 29 -1304=29 30 30 29 30 30 30 29 30 29 30 29 -1305=29 29 30 30 29 30 30 29 30 30 29 29 -1306=30 29 30 29 30 29 30 29 30 30 29 30 -1307=29 30 29 30 29 30 29 30 29 30 29 30 -1308=29 30 30 29 30 29 30 29 30 29 29 30 -1309=29 30 30 30 30 29 29 30 29 29 30 29 -1310=30 29 30 30 30 29 30 29 30 29 29 30 -1311=29 30 29 30 30 30 29 30 29 30 29 29 -1312=30 29 30 29 30 30 29 30 30 29 30 29 -1313=29 30 29 30 29 30 29 30 30 30 29 29 -1314=30 30 29 30 29 29 30 29 30 30 29 30 -1315=29 30 30 29 30 29 29 30 29 30 29 30 -1316=29 30 30 30 29 30 29 29 30 29 30 29 -1317=30 29 30 30 29 30 29 30 29 30 29 29 -1318=30 29 30 30 29 30 30 29 30 29 30 29 -1319=29 30 29 30 30 29 30 29 30 30 29 30 -1320=29 30 29 29 30 29 30 29 30 30 30 29 -1321=30 29 30 29 29 30 29 29 30 30 30 30 -1322=29 30 29 30 29 29 29 30 29 30 30 30 -1323=29 30 30 29 30 29 29 29 30 29 30 30 -1324=29 30 30 29 30 29 30 29 29 30 29 30 -1325=30 29 30 29 30 30 29 30 29 30 29 30 -1326=29 29 30 29 30 30 29 30 29 30 30 29 -1327=30 29 29 30 29 30 29 30 30 29 30 30 -1328=29 30 29 29 30 29 29 30 30 30 29 30 -1329=30 29 30 29 29 30 29 29 30 30 29 30 -1330=30 30 29 30 29 29 30 29 29 30 30 29 -1331=30 30 29 30 30 29 29 30 29 30 29 30 -1332=29 30 29 30 30 29 30 29 30 30 29 29 -1333=30 29 29 30 30 29 30 30 29 30 30 29 -1334=29 29 30 29 30 29 30 30 30 29 30 29 -1335=30 29 30 29 29 30 29 30 30 29 30 30 -1336=29 30 29 30 29 29 30 29 30 29 30 30 -1337=30 29 30 29 30 29 29 30 29 30 29 30 -1338=29 30 30 29 30 30 29 29 30 29 30 29 -1339=30 29 30 29 30 30 30 29 30 29 29 30 -1340=29 29 30 29 30 30 30 30 29 30 29 29 -1341=30 29 29 30 29 30 30 30 29 30 30 29 -1342=29 29 30 29 30 29 30 30 29 30 30 29 -1343=30 29 29 30 29 30 29 30 29 30 30 29 -1344=30 29 30 29 30 30 29 29 30 29 30 29 -1345=30 29 30 30 30 29 30 29 29 30 29 29 -1346=30 29 30 30 30 30 29 30 29 29 30 29 -1347=29 30 29 30 30 30 29 30 30 29 29 30 -1348=29 29 30 29 30 30 29 30 30 30 29 29 -1349=30 29 29 30 29 30 30 29 30 30 29 30 -1350=29 30 29 30 29 30 29 29 30 30 29 30 -1351=30 29 30 29 30 29 30 29 29 30 29 30 -1352=30 29 30 30 29 30 29 30 29 29 30 29 -1353=30 29 30 30 30 29 30 29 29 30 29 30 -1354=29 30 29 30 30 29 30 30 29 30 29 29 -1355=30 29 29 30 30 29 30 30 29 30 30 29 -1356=29 30 29 30 29 30 29 30 29 30 30 30 -1357=29 29 30 29 30 29 29 30 29 30 30 30 -1358=29 30 29 30 29 30 29 29 30 29 30 30 -1359=29 30 30 29 30 29 30 29 29 29 30 30 -1360=29 30 30 30 29 30 29 30 29 29 30 29 -1361=30 29 30 30 29 30 30 29 29 30 29 30 -1362=29 30 29 30 29 30 30 29 30 29 30 29 -1363=30 29 30 29 30 29 30 29 30 29 30 30 -1364=29 30 29 30 29 29 30 29 30 29 30 30 -1365=30 30 29 29 30 29 29 30 29 30 29 30 -1366=30 30 29 30 29 30 29 29 30 29 30 29 -1367=30 30 29 30 30 29 30 29 29 30 29 30 -1368=29 30 29 30 30 30 29 29 30 29 30 29 -1369=30 29 30 29 30 30 29 30 29 30 30 29 -1370=30 29 29 30 29 30 29 30 29 30 30 30 -1371=29 30 29 29 30 29 30 29 30 29 30 30 -1372=30 29 29 30 29 30 29 29 30 29 30 30 -1373=30 29 30 29 30 29 30 29 29 30 29 30 -1374=30 29 30 30 29 30 29 30 29 29 30 29 -1375=30 29 30 30 29 30 30 29 30 29 30 29 -1376=29 30 29 30 29 30 30 30 29 30 29 30 -1377=29 29 30 29 29 30 30 30 29 30 30 29 -1378=30 29 29 29 30 29 30 30 29 30 30 30 -1379=29 30 29 29 29 30 29 30 30 29 30 30 -1380=29 30 29 30 29 30 29 30 29 30 29 30 -1381=29 30 29 30 30 29 30 29 30 29 29 30 -1382=29 30 29 30 30 29 30 30 29 30 29 29 -1383=30 29 29 30 30 30 29 30 30 29 30 29 -1384=29 30 29 29 30 30 29 30 30 30 29 30 -1385=29 29 30 29 29 30 30 29 30 30 30 29 -1386=30 29 29 30 29 29 30 30 29 30 30 29 -1387=30 29 30 29 30 29 30 29 30 29 30 29 -1388=30 30 29 30 29 30 29 30 29 30 29 29 -1389=30 30 29 30 30 29 30 30 29 29 30 29 -1390=29 30 29 30 30 30 29 30 29 30 29 30 -1391=29 29 30 29 30 30 29 30 30 29 30 29 -1392=30 29 29 30 29 30 29 30 30 29 30 30 -1393=29 30 29 29 30 29 30 29 30 29 30 30 -1394=30 29 30 29 29 30 29 30 29 30 29 30 -1395=30 29 30 30 29 30 29 29 30 29 29 30 -1396=30 29 30 30 29 30 30 29 29 30 29 29 -1397=30 29 30 30 29 30 30 30 29 29 29 30 -1398=29 30 29 30 30 29 30 30 29 30 29 29 -1399=30 29 30 29 30 29 30 30 29 30 29 30 -1400=30 29 30 29 29 30 29 30 29 30 29 30 -1401=30 30 29 30 29 29 30 29 29 30 29 30 -1402=30 30 30 29 30 29 29 30 29 29 30 29 -1403=30 30 30 29 30 30 29 29 30 29 29 30 -1404=29 30 30 29 30 30 29 30 29 30 29 29 -1405=30 29 30 29 30 30 30 29 30 29 29 30 -1406=30 29 29 30 29 30 30 29 30 29 30 30 -1407=29 30 29 29 30 29 30 29 30 29 30 30 -1408=30 29 30 29 30 29 29 30 29 29 30 30 -1409=30 30 29 30 29 30 29 29 30 29 29 30 -1410=30 30 29 30 30 29 30 29 29 30 29 29 -1411=30 30 29 30 30 29 30 30 29 29 30 29 -1412=30 29 30 29 30 29 30 30 30 29 29 30 -1413=29 30 29 29 30 29 30 30 30 29 30 29 -1414=30 29 30 29 29 30 29 30 30 29 30 30 -1415=29 30 29 30 29 29 30 29 30 29 30 30 -1416=30 29 30 29 30 29 29 30 29 30 29 30 -1417=30 29 30 30 29 29 30 29 30 29 30 29 -1418=30 29 30 30 29 30 29 30 29 30 29 30 -1419=29 30 29 30 29 30 29 30 30 30 29 29 -1420=29 30 29 29 30 29 30 30 30 30 29 30 -1421=29 29 30 29 29 29 30 30 30 30 29 30 -1422=30 29 29 30 29 29 29 30 30 30 29 30 -1423=30 29 30 29 30 29 29 30 29 30 29 30 -1424=30 29 30 30 29 30 29 29 30 29 30 29 -1425=30 29 30 30 29 30 29 30 30 29 30 29 -1426=29 30 29 30 29 30 30 29 30 30 29 30 -1427=29 29 30 29 30 29 30 30 29 30 30 29 -1428=30 29 29 30 29 29 30 30 30 29 30 30 -1429=29 30 29 29 30 29 29 30 30 29 30 30 -1430=29 30 30 29 29 30 29 30 29 30 29 30 -1431=29 30 30 29 30 29 30 29 30 29 29 30 -1432=29 30 30 30 29 30 29 30 29 30 29 29 -1433=30 29 30 30 29 30 30 29 30 29 30 29 -1434=29 30 29 30 29 30 30 29 30 30 29 29 -1435=30 29 30 29 30 29 30 29 30 30 29 30 -1436=29 30 29 30 29 30 29 30 29 30 29 30 -1437=30 29 30 30 29 29 30 29 30 29 29 30 -1438=30 29 30 30 30 29 29 30 29 29 30 29 -1439=30 29 30 30 30 29 30 29 30 29 29 30 -1440=29 30 29 30 30 30 29 30 29 30 29 29 -1441=30 29 30 29 30 30 29 30 30 29 30 29 -1442=29 30 29 30 29 30 29 30 30 29 30 29 -1443=30 29 30 29 30 29 30 29 30 29 30 30 -1444=29 30 29 30 30 29 29 30 29 30 29 30 -1445=29 30 30 30 29 30 29 29 30 29 29 30 -1446=29 30 30 30 29 30 30 29 29 30 29 29 -1447=30 29 30 30 30 29 30 29 30 29 30 29 -1448=29 30 29 30 30 29 30 30 29 30 29 30 -1449=29 29 30 29 30 29 30 30 29 30 30 29 -1450=30 29 30 29 29 30 29 30 29 30 30 29 -1451=30 30 30 29 29 30 29 29 30 30 29 30 -1452=30 29 30 30 29 29 30 29 29 30 29 30 -1453=30 29 30 30 29 30 29 30 29 29 30 29 -1454=30 29 30 30 29 30 30 29 30 29 30 29 -1455=29 30 29 30 30 29 30 29 30 30 29 30 -1456=29 29 30 29 30 29 30 29 30 30 30 29 -1457=30 29 29 30 29 29 30 29 30 30 30 30 -1458=29 30 29 29 30 29 29 30 29 30 30 30 -1459=29 30 30 29 29 30 29 29 30 29 30 30 -1460=29 30 30 29 30 29 30 29 29 30 29 30 -1461=29 30 30 29 30 29 30 29 30 30 29 29 -1462=30 29 30 29 30 30 29 30 29 30 30 29 -1463=29 30 29 30 29 30 29 30 30 30 29 30 -1464=29 30 29 29 30 29 29 30 30 30 29 30 -1465=30 29 30 29 29 30 29 29 30 30 29 30 -1466=30 30 29 30 29 29 29 30 29 30 30 29 -1467=30 30 29 30 30 29 29 30 29 30 29 30 -1468=29 30 29 30 30 29 30 29 30 29 30 29 -1469=29 30 29 30 30 29 30 30 29 30 29 30 -1470=29 29 30 29 30 30 29 30 30 29 30 29 -1471=30 29 29 30 29 30 29 30 30 29 30 30 -1472=29 30 29 29 30 29 30 29 30 30 29 30 -1473=29 30 29 30 30 29 29 30 29 30 29 30 -1474=29 30 30 29 30 30 29 29 30 29 30 29 -1475=29 30 30 29 30 30 30 29 29 30 29 29 -1476=30 29 30 29 30 30 30 29 30 29 30 29 -1477=29 30 29 29 30 30 30 30 29 30 29 30 -1478=29 29 30 29 30 29 30 30 29 30 30 29 -1479=30 29 29 30 29 30 29 30 29 30 30 29 -1480=30 29 30 29 30 29 30 29 30 29 30 29 -1481=30 29 30 30 29 30 29 30 29 30 29 29 -1482=30 29 30 30 30 30 29 30 29 29 30 29 -1483=29 30 29 30 30 30 29 30 30 29 29 30 -1484=29 29 30 29 30 30 30 29 30 29 30 29 -1485=30 29 29 30 29 30 30 29 30 30 29 30 -1486=29 30 29 29 30 29 30 29 30 30 29 30 -1487=30 29 30 29 30 29 29 30 29 30 29 30 -1488=30 29 30 30 29 30 29 29 30 29 30 29 -1489=30 29 30 30 30 29 30 29 29 30 29 30 -1490=29 30 29 30 30 29 30 30 29 29 30 29 -1491=30 29 29 30 30 29 30 30 29 30 29 30 -1492=29 30 29 29 30 30 29 30 29 30 30 29 -1493=30 29 30 29 30 29 29 30 29 30 30 30 -1494=29 30 29 30 29 30 29 29 29 30 30 30 -1495=29 30 30 29 30 29 29 30 29 29 30 30 -1496=29 30 30 30 29 30 29 29 30 29 29 30 -1497=30 29 30 30 29 30 29 30 29 30 29 30 -1498=29 30 29 30 29 30 30 29 30 29 30 29 -1499=30 29 30 29 29 30 30 29 30 29 30 30 -1500=29 30 29 30 29 29 30 29 30 29 30 30 -1501=30 29 30 29 30 29 29 29 30 29 30 30 -1502=30 30 29 30 29 30 29 29 29 30 30 29 -1503=30 30 29 30 30 29 30 29 29 29 30 30 -1504=29 30 29 30 30 30 29 29 30 29 30 29 -1505=30 29 30 29 30 30 29 30 29 30 30 29 -1506=29 30 29 29 30 30 29 30 30 29 30 30 -1507=29 29 30 29 29 30 30 29 30 29 30 30 -1508=30 29 29 30 29 30 29 29 30 29 30 30 -1509=30 29 30 29 30 29 30 29 29 30 29 30 -1510=30 29 30 30 29 30 29 30 29 29 30 29 -1511=30 29 30 30 29 30 30 29 30 29 29 30 -1512=29 30 29 30 29 30 30 30 29 30 29 30 -1513=29 29 29 30 29 30 30 30 29 30 30 29 -1514=30 29 29 29 30 29 30 30 29 30 30 30 -1515=29 29 30 29 29 30 29 30 30 29 30 30 -1516=29 30 29 30 29 29 30 29 30 29 30 30 -1517=29 30 29 30 29 30 30 29 29 30 29 30 -1518=29 30 29 30 30 29 30 30 29 30 29 29 -1519=30 29 29 30 30 30 29 30 30 29 30 29 -1520=29 30 29 29 30 30 30 29 30 30 29 30 -1521=29 29 29 30 29 30 30 29 30 30 29 30 -1522=30 29 29 29 30 29 30 30 29 30 30 29 -1523=30 29 30 29 30 29 30 29 29 30 30 29 -1524=30 30 29 30 29 30 29 30 29 29 30 29 -1525=30 30 29 30 30 29 30 29 30 29 29 30 -1526=29 30 29 30 30 30 29 30 29 30 29 29 -1527=30 29 30 29 30 30 29 30 30 29 30 29 -1528=30 29 29 30 29 30 29 30 30 29 30 30 -1529=29 30 29 29 30 29 30 29 30 29 30 30 -1530=29 30 30 29 29 30 29 30 29 29 30 30 -1531=29 30 30 30 29 29 30 29 30 29 29 30 -1532=29 30 30 30 29 30 30 29 29 29 30 29 -1533=30 29 30 30 30 29 30 29 30 29 29 30 -1534=29 30 29 30 30 29 30 30 29 29 30 29 -1535=30 29 30 29 30 29 30 30 29 30 29 30 -1536=29 30 29 30 29 30 29 30 29 30 29 30 -1537=30 29 30 30 29 29 30 29 29 30 29 30 -1538=30 30 29 30 30 29 29 30 29 29 30 29 -1539=30 30 30 29 30 30 29 29 30 29 29 30 -1540=29 30 30 29 30 30 29 30 29 29 30 29 -1541=30 29 30 29 30 30 30 29 30 29 29 30 -1542=29 30 29 30 29 30 30 29 30 29 30 30 -1543=29 30 29 29 30 29 30 29 30 29 30 30 -1544=30 29 30 29 29 30 29 30 29 30 29 30 -1545=30 30 29 30 29 29 30 29 30 29 29 30 -1546=30 30 29 30 29 30 29 30 29 30 29 29 -1547=30 30 29 30 30 29 30 29 30 29 30 29 -1548=30 29 29 30 30 29 30 30 29 30 29 30 -1549=29 30 29 29 30 29 30 30 30 29 30 29 -1550=30 29 30 29 29 29 30 30 30 29 30 30 -1551=29 30 29 29 30 29 29 30 30 29 30 30 -1552=30 29 30 29 29 30 29 29 30 30 29 30 -1553=30 29 30 29 30 29 30 29 30 29 30 29 -1554=30 29 30 29 30 30 29 30 29 30 29 30 -1555=29 29 30 29 30 30 29 30 30 29 30 29 -1556=30 29 29 30 29 30 29 30 30 30 29 30 -1557=29 30 29 29 29 30 29 30 30 30 30 29 -1558=30 29 30 29 29 29 30 29 30 30 30 29 -1559=30 30 29 29 30 29 29 30 30 29 30 29 -1560=30 30 29 30 29 30 29 30 29 30 29 30 -1561=29 30 30 29 30 29 30 30 29 29 30 29 -1562=29 30 30 29 30 29 30 30 30 29 29 30 -1563=29 30 29 29 30 29 30 30 30 29 30 29 -1564=30 29 30 29 29 30 29 30 30 30 29 30 -1565=29 30 29 30 29 29 30 29 30 30 29 30 -1566=30 29 30 29 30 29 29 30 29 30 29 30 -1567=30 29 30 30 29 30 29 30 29 29 30 29 -1568=30 29 30 30 30 29 30 29 30 29 29 29 -1569=30 29 30 30 30 29 30 30 29 30 29 29 -1570=29 30 29 30 30 29 30 30 30 29 29 30 -1571=29 29 30 29 30 30 29 30 30 29 30 29 -1572=30 29 29 30 29 30 29 30 30 29 30 29 -1573=30 29 30 30 29 30 29 29 30 29 30 29 -1574=30 30 29 30 30 29 30 29 29 30 29 29 -1575=30 30 30 29 30 30 29 30 29 29 29 30 -1576=29 30 30 29 30 30 30 29 30 29 29 29 -1577=30 29 30 30 29 30 30 29 30 29 30 29 -1578=29 30 29 30 29 30 30 29 30 30 29 30 -1579=29 30 29 30 29 29 30 30 29 30 29 30 -1580=29 30 30 29 30 29 29 30 29 30 29 30 -1581=30 30 29 30 29 30 29 29 30 29 30 29 -1582=30 30 29 30 30 29 30 29 30 29 29 29 -1583=30 30 29 30 30 30 29 30 29 30 29 29 -1584=29 30 30 29 30 30 29 30 30 29 30 29 -1585=29 30 29 30 29 30 29 30 30 29 30 30 -1586=29 29 30 29 30 29 29 30 30 30 29 30 -1587=29 30 30 29 29 29 30 29 30 29 30 30 -1588=30 29 30 30 29 29 29 30 29 30 29 30 -1589=30 29 30 30 29 30 29 29 30 29 30 29 -1590=30 29 30 30 30 29 29 30 29 30 29 30 -1591=29 30 29 30 30 29 30 29 30 29 30 29 -1592=30 29 30 29 30 29 30 29 30 30 30 29 -1593=30 29 29 30 29 29 30 29 30 30 30 29 -1594=30 30 29 29 30 29 29 29 30 30 30 30 -1595=29 30 29 30 29 29 30 29 29 30 30 30 -1596=29 30 30 29 30 29 29 30 29 30 29 30 -1597=29 30 30 29 30 29 30 29 30 29 30 29 -1598=30 29 30 29 30 30 29 30 29 30 30 29 -1599=29 30 29 30 29 30 29 30 30 30 29 30 -1600=29 29 30 29 30 29 29 30 30 30 29 30 diff -Nru pycharm-2018.3.5/jre64/lib/images/cursors/cursors.properties pycharm-2019.1/jre64/lib/images/cursors/cursors.properties --- pycharm-2018.3.5/jre64/lib/images/cursors/cursors.properties 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/images/cursors/cursors.properties 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -# -# -# Cursors Properties file -# -# Names GIF89 sources for Custom Cursors and their associated HotSpots -# -# Note: the syntax of the property name is significant and is parsed -# by java.awt.Cursor -# -# The syntax is: Cursor...File= -# Cursor...HotSpot=, -# Cursor...Name= -# -Cursor.CopyDrop.32x32.File=motif_CopyDrop32x32.gif -Cursor.CopyDrop.32x32.HotSpot=0,0 -Cursor.CopyDrop.32x32.Name=CopyDrop32x32 -# -Cursor.MoveDrop.32x32.File=motif_MoveDrop32x32.gif -Cursor.MoveDrop.32x32.HotSpot=0,0 -Cursor.MoveDrop.32x32.Name=MoveDrop32x32 -# -Cursor.LinkDrop.32x32.File=motif_LinkDrop32x32.gif -Cursor.LinkDrop.32x32.HotSpot=0,0 -Cursor.LinkDrop.32x32.Name=LinkDrop32x32 -# -Cursor.CopyNoDrop.32x32.File=motif_CopyNoDrop32x32.gif -Cursor.CopyNoDrop.32x32.HotSpot=6,2 -Cursor.CopyNoDrop.32x32.Name=CopyNoDrop32x32 -# -Cursor.MoveNoDrop.32x32.File=motif_MoveNoDrop32x32.gif -Cursor.MoveNoDrop.32x32.HotSpot=6,2 -Cursor.MoveNoDrop.32x32.Name=MoveNoDrop32x32 -# -Cursor.LinkNoDrop.32x32.File=motif_LinkNoDrop32x32.gif -Cursor.LinkNoDrop.32x32.HotSpot=6,2 -Cursor.LinkNoDrop.32x32.Name=LinkNoDrop32x32 -# -Cursor.Invalid.32x32.File=invalid32x32.gif -Cursor.Invalid.32x32.HotSpot=6,2 -Cursor.Invalid.32x32.Name=Invalid32x32 Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/images/cursors/invalid32x32.gif and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/images/cursors/invalid32x32.gif differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/images/cursors/motif_CopyDrop32x32.gif and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/images/cursors/motif_CopyDrop32x32.gif differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/images/cursors/motif_CopyNoDrop32x32.gif and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/images/cursors/motif_CopyNoDrop32x32.gif differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/images/cursors/motif_LinkDrop32x32.gif and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/images/cursors/motif_LinkDrop32x32.gif differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/images/cursors/motif_LinkNoDrop32x32.gif and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/images/cursors/motif_LinkNoDrop32x32.gif differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/images/cursors/motif_MoveDrop32x32.gif and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/images/cursors/motif_MoveDrop32x32.gif differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/images/cursors/motif_MoveNoDrop32x32.gif and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/images/cursors/motif_MoveNoDrop32x32.gif differ diff -Nru pycharm-2018.3.5/jre64/lib/javafx.properties pycharm-2019.1/jre64/lib/javafx.properties --- pycharm-2018.3.5/jre64/lib/javafx.properties 2019-01-29 16:01:13.000000000 +0000 +++ pycharm-2019.1/jre64/lib/javafx.properties 2019-03-19 06:17:20.000000000 +0000 @@ -1,2 +1,3 @@ -javafx.runtime.version=8.0.172 -javafx.runtime.build=b167 +javafx.version=10.0.2-internal +javafx.runtime.version=10.0.2-internal+133-2019-02-21-135014 +javafx.runtime.build=133 Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/javafx-swt.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/javafx-swt.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/jce.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/jce.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/jexec and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/jexec differ diff -Nru pycharm-2018.3.5/jre64/lib/jfr/default.jfc pycharm-2019.1/jre64/lib/jfr/default.jfc --- pycharm-2018.3.5/jre64/lib/jfr/default.jfc 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/lib/jfr/default.jfc 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,826 @@ + + + + + + + + true + everyChunk + + + + true + 1000 ms + + + + true + everyChunk + + + + true + 1000 ms + + + + true + + + + true + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + false + true + 20 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + + + + false + true + 0 ms + + + + false + true + + + + false + + + + true + beginChunk + + + + true + beginChunk + + + + true + 20 ms + + + + true + 20 ms + + + + true + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + false + 10 ms + + + + true + 10 ms + + + + true + true + + + + true + everyChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + everyChunk + + + + true + everyChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + false + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + true + + + + true + true + + + + true + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + true + 0 ms + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + + + + false + + + + true + + + + false + true + + + + true + + + + false + everyChunk + + + + false + + + + true + false + 0 ns + + + + true + beginChunk + + + + true + 1000 ms + + + + true + 1000 ms + + + + true + 60 s + + + + false + + + + false + + + + true + beginChunk + + + + true + everyChunk + + + + true + 100 ms + + + + true + beginChunk + + + + true + everyChunk + + + + true + + + + true + beginChunk + + + + true + beginChunk + + + + true + 10 s + + + + true + 1000 ms + + + + true + 10 s + + + + true + beginChunk + + + + true + endChunk + + + + true + 5 s + + + + true + beginChunk + + + + true + everyChunk + + + + false + true + + + + false + true + + + + true + everyChunk + + + + true + endChunk + + + + true + endChunk + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + true + true + 20 ms + + + + false + true + + + + true + true + + + + true + 1000 ms + + + + true + + + + true + + + + true + + + + true + + + + true + 10 ms + + + + true + 0 ms + + + + true + 10 ms + + + + true + 10 ms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 ms + + 20 ms + + 20 ms + + false + + + + diff -Nru pycharm-2018.3.5/jre64/lib/jfr/profile.jfc pycharm-2019.1/jre64/lib/jfr/profile.jfc --- pycharm-2018.3.5/jre64/lib/jfr/profile.jfc 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/lib/jfr/profile.jfc 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,827 @@ + + + + + + + + true + everyChunk + + + + true + 1000 ms + + + + true + everyChunk + + + + true + 1000 ms + + + + true + + + + true + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + 0 ms + + + + true + true + + + + false + true + 0 ms + + + + false + true + + + + false + + + + true + beginChunk + + + + true + beginChunk + + + + true + 10 ms + + + + true + 10 ms + + + + true + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + true + 0 ms + + + + true + true + + + + true + 60 s + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + everyChunk + + + + true + everyChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + true + beginChunk + + + + false + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + true + + + + true + true + + + + true + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + true + 0 ms + + + + false + 0 ms + + + + false + 0 ms + + + + true + 0 ms + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + false + true + + + + true + + + + false + everyChunk + + + + false + + + + true + true + 0 ns + + + + true + beginChunk + + + + true + 1000 ms + + + + true + 100 ms + + + + true + 10 s + + + + true + + + + false + + + + true + beginChunk + + + + true + everyChunk + + + + true + 100 ms + + + + true + beginChunk + + + + true + everyChunk + + + + true + + + + true + beginChunk + + + + true + beginChunk + + + + true + 10 s + + + + true + 1000 ms + + + + true + 10 s + + + + true + beginChunk + + + + true + endChunk + + + + true + 5 s + + + + true + beginChunk + + + + true + everyChunk + + + + true + true + + + + true + true + + + + true + everyChunk + + + + true + endChunk + + + + true + endChunk + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + true + true + 10 ms + + + + false + true + + + + true + true + + + + true + 1000 ms + + + + true + + + + true + + + + true + + + + true + + + + true + 10 ms + + + + true + 0 ms + + + + 10 ms + true + + + + true + 10 ms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10 ms + + 10 ms + + 10 ms + + false + + + + Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/jfxswt.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/jfxswt.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/jli/libjli.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/jli/libjli.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/jrt-fs.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/jrt-fs.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/jsse.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/jsse.jar differ diff -Nru pycharm-2018.3.5/jre64/lib/jvm.cfg pycharm-2019.1/jre64/lib/jvm.cfg --- pycharm-2018.3.5/jre64/lib/jvm.cfg 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/lib/jvm.cfg 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,2 @@ +-server KNOWN +-client IGNORE diff -Nru pycharm-2018.3.5/jre64/lib/jvm.hprof.txt pycharm-2019.1/jre64/lib/jvm.hprof.txt --- pycharm-2018.3.5/jre64/lib/jvm.hprof.txt 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/jvm.hprof.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ -Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - - Neither the name of Oracle nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -Header for -agentlib:hprof (or -Xrunhprof) ASCII Output (JDK 5.0 JVMTI based) - -WARNING! This file format is under development, and is subject to -change without notice. - -This file contains the following types of records: - -THREAD START -THREAD END mark the lifetime of Java threads - -TRACE represents a Java stack trace. Each trace consists - of a series of stack frames. Other records refer to - TRACEs to identify (1) where object allocations have - taken place, (2) the frames in which GC roots were - found, and (3) frequently executed methods. - -HEAP DUMP is a complete snapshot of all live objects in the Java - heap. Following distinctions are made: - - ROOT root set as determined by GC - CLS classes - OBJ instances - ARR arrays - -SITES is a sorted list of allocation sites. This identifies - the most heavily allocated object types, and the TRACE - at which those allocations occurred. - -CPU SAMPLES is a statistical profile of program execution. The VM - periodically samples all running threads, and assigns - a quantum to active TRACEs in those threads. Entries - in this record are TRACEs ranked by the percentage of - total quanta they consumed; top-ranked TRACEs are - typically hot spots in the program. - -CPU TIME is a profile of program execution obtained by measuring - the time spent in individual methods (excluding the time - spent in callees), as well as by counting the number of - times each method is called. Entries in this record are - TRACEs ranked by the percentage of total CPU time. The - "count" field indicates the number of times each TRACE - is invoked. - -MONITOR TIME is a profile of monitor contention obtained by measuring - the time spent by a thread waiting to enter a monitor. - Entries in this record are TRACEs ranked by the percentage - of total monitor contention time and a brief description - of the monitor. The "count" field indicates the number of - times the monitor was contended at that TRACE. - -MONITOR DUMP is a complete snapshot of all the monitors and threads in - the System. - -HEAP DUMP, SITES, CPU SAMPLES|TIME and MONITOR DUMP|TIME records are generated -at program exit. They can also be obtained during program execution by typing -Ctrl-\ (on Solaris) or by typing Ctrl-Break (on Win32). Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libattach.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libattach.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libavplugin-53.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libavplugin-53.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libavplugin-54.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libavplugin-54.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libavplugin-55.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libavplugin-55.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libavplugin-56.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libavplugin-56.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libavplugin-57.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libavplugin-57.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libavplugin-ffmpeg-56.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libavplugin-ffmpeg-56.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libavplugin-ffmpeg-57.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libavplugin-ffmpeg-57.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libawt_headless.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libawt_headless.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libawt.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libawt.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libawt_xawt.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libawt_xawt.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libdecora_sse.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libdecora_sse.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libdt_socket.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libdt_socket.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libextnet.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libextnet.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libfontmanager.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libfontmanager.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libfxplugins.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libfxplugins.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libglassgtk2.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libglassgtk2.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libglassgtk3.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libglassgtk3.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libglass.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libglass.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libgstreamer-lite.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libgstreamer-lite.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libinstrument.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libinstrument.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libj2gss.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libj2gss.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libj2pcsc.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libj2pcsc.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libj2pkcs11.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libj2pkcs11.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjaas.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjaas.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjavafx_font_freetype.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjavafx_font_freetype.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjavafx_font_pango.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjavafx_font_pango.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjavafx_font.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjavafx_font.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjavafx_iio.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjavafx_iio.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjavajpeg.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjavajpeg.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjava.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjava.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjawt.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjawt.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjdwp.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjdwp.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjfxmedia.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjfxmedia.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjfxwebkit.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjfxwebkit.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjimage.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjimage.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjsig.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjsig.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libjsound.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libjsound.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/liblcms.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/liblcms.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libmanagement_agent.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libmanagement_agent.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libmanagement_ext.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libmanagement_ext.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libmanagement.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libmanagement.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libmlib_image.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libmlib_image.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libnet.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libnet.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libnio.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libnio.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libprefs.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libprefs.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libprism_common.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libprism_common.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libprism_es2.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libprism_es2.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libprism_sw.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libprism_sw.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/librmi.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/librmi.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libsctp.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libsctp.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libsplashscreen.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libsplashscreen.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libsunec.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libsunec.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libunpack.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libunpack.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libverify.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libverify.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/libzip.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/libzip.so differ diff -Nru pycharm-2018.3.5/jre64/lib/logging.properties pycharm-2019.1/jre64/lib/logging.properties --- pycharm-2018.3.5/jre64/lib/logging.properties 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/logging.properties 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ -############################################################ -# Default Logging Configuration File -# -# You can use a different file by specifying a filename -# with the java.util.logging.config.file system property. -# For example java -Djava.util.logging.config.file=myfile -############################################################ - -############################################################ -# Global properties -############################################################ - -# "handlers" specifies a comma separated list of log Handler -# classes. These handlers will be installed during VM startup. -# Note that these classes must be on the system classpath. -# By default we only configure a ConsoleHandler, which will only -# show messages at the INFO and above levels. -handlers= java.util.logging.ConsoleHandler - -# To also add the FileHandler, use the following line instead. -#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler - -# Default global logging level. -# This specifies which kinds of events are logged across -# all loggers. For any given facility this global level -# can be overriden by a facility specific level -# Note that the ConsoleHandler also has a separate level -# setting to limit messages printed to the console. -.level= INFO - -############################################################ -# Handler specific properties. -# Describes specific configuration info for Handlers. -############################################################ - -# default file output is in user's home directory. -java.util.logging.FileHandler.pattern = %h/java%u.log -java.util.logging.FileHandler.limit = 50000 -java.util.logging.FileHandler.count = 1 -java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter - -# Limit the message that are printed on the console to INFO and above. -java.util.logging.ConsoleHandler.level = INFO -java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter - -# Example to customize the SimpleFormatter output format -# to print one-line log message like this: -# : [] -# -# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n - -############################################################ -# Facility specific properties. -# Provides extra control for each logger. -############################################################ - -# For example, set the com.xyz.foo logger to only log SEVERE -# messages: -com.xyz.foo.level = SEVERE diff -Nru pycharm-2018.3.5/jre64/lib/management/jmxremote.access pycharm-2019.1/jre64/lib/management/jmxremote.access --- pycharm-2018.3.5/jre64/lib/management/jmxremote.access 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/management/jmxremote.access 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ -###################################################################### -# Default Access Control File for Remote JMX(TM) Monitoring -###################################################################### -# -# Access control file for Remote JMX API access to monitoring. -# This file defines the allowed access for different roles. The -# password file (jmxremote.password by default) defines the roles and their -# passwords. To be functional, a role must have an entry in -# both the password and the access files. -# -# The default location of this file is $JRE/lib/management/jmxremote.access -# You can specify an alternate location by specifying a property in -# the management config file $JRE/lib/management/management.properties -# (See that file for details) -# -# The file format for password and access files is syntactically the same -# as the Properties file format. The syntax is described in the Javadoc -# for java.util.Properties.load. -# A typical access file has multiple lines, where each line is blank, -# a comment (like this one), or an access control entry. -# -# An access control entry consists of a role name, and an -# associated access level. The role name is any string that does not -# itself contain spaces or tabs. It corresponds to an entry in the -# password file (jmxremote.password). The access level is one of the -# following: -# "readonly" grants access to read attributes of MBeans. -# For monitoring, this means that a remote client in this -# role can read measurements but cannot perform any action -# that changes the environment of the running program. -# "readwrite" grants access to read and write attributes of MBeans, -# to invoke operations on them, and optionally -# to create or remove them. This access should be granted -# only to trusted clients, since they can potentially -# interfere with the smooth operation of a running program. -# -# The "readwrite" access level can optionally be followed by the "create" and/or -# "unregister" keywords. The "unregister" keyword grants access to unregister -# (delete) MBeans. The "create" keyword grants access to create MBeans of a -# particular class or of any class matching a particular pattern. Access -# should only be granted to create MBeans of known and trusted classes. -# -# For example, the following entry would grant readwrite access -# to "controlRole", as well as access to create MBeans of the class -# javax.management.monitor.CounterMonitor and to unregister any MBean: -# controlRole readwrite \ -# create javax.management.monitor.CounterMonitorMBean \ -# unregister -# or equivalently: -# controlRole readwrite unregister create javax.management.monitor.CounterMBean -# -# The following entry would grant readwrite access as well as access to create -# MBeans of any class in the packages javax.management.monitor and -# javax.management.timer: -# controlRole readwrite \ -# create javax.management.monitor.*,javax.management.timer.* \ -# unregister -# -# The \ character is defined in the Properties file syntax to allow continuation -# lines as shown here. A * in a class pattern matches a sequence of characters -# other than dot (.), so javax.management.monitor.* matches -# javax.management.monitor.CounterMonitor but not -# javax.management.monitor.foo.Bar. -# -# A given role should have at most one entry in this file. If a role -# has no entry, it has no access. -# If multiple entries are found for the same role name, then the last -# access entry is used. -# -# -# Default access control entries: -# o The "monitorRole" role has readonly access. -# o The "controlRole" role has readwrite access and can create the standard -# Timer and Monitor MBeans defined by the JMX API. - -monitorRole readonly -controlRole readwrite \ - create javax.management.monitor.*,javax.management.timer.* \ - unregister diff -Nru pycharm-2018.3.5/jre64/lib/management/jmxremote.password.template pycharm-2019.1/jre64/lib/management/jmxremote.password.template --- pycharm-2018.3.5/jre64/lib/management/jmxremote.password.template 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/management/jmxremote.password.template 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -# ---------------------------------------------------------------------- -# Template for jmxremote.password -# -# o Copy this template to jmxremote.password -# o Set the user/password entries in jmxremote.password -# o Change the permission of jmxremote.password to read-only -# by the owner. -# -# See below for the location of jmxremote.password file. -# ---------------------------------------------------------------------- - -############################################################## -# Password File for Remote JMX Monitoring -############################################################## -# -# Password file for Remote JMX API access to monitoring. This -# file defines the different roles and their passwords. The access -# control file (jmxremote.access by default) defines the allowed -# access for each role. To be functional, a role must have an entry -# in both the password and the access files. -# -# Default location of this file is $JRE/lib/management/jmxremote.password -# You can specify an alternate location by specifying a property in -# the management config file $JRE/lib/management/management.properties -# or by specifying a system property (See that file for details). - - -############################################################## -# File permissions of the jmxremote.password file -############################################################## -# Since there are cleartext passwords stored in this file, -# this file must be readable by ONLY the owner, -# otherwise the program will exit with an error. -# -# The file format for password and access files is syntactically the same -# as the Properties file format. The syntax is described in the Javadoc -# for java.util.Properties.load. -# Typical password file has multiple lines, where each line is blank, -# a comment (like this one), or a password entry. -# -# -# A password entry consists of a role name and an associated -# password. The role name is any string that does not itself contain -# spaces or tabs. The password is again any string that does not -# contain spaces or tabs. Note that passwords appear in the clear in -# this file, so it is a good idea not to use valuable passwords. -# -# A given role should have at most one entry in this file. If a role -# has no entry, it has no access. -# If multiple entries are found for the same role name, then the last one -# is used. -# -# In a typical installation, this file can be read by anybody on the -# local machine, and possibly by people on other machines. -# For # security, you should either restrict the access to this file, -# or specify another, less accessible file in the management config file -# as described above. -# -# Following are two commented-out entries. The "measureRole" role has -# password "QED". The "controlRole" role has password "R&D". -# -# monitorRole QED -# controlRole R&D - diff -Nru pycharm-2018.3.5/jre64/lib/management/management.properties pycharm-2019.1/jre64/lib/management/management.properties --- pycharm-2018.3.5/jre64/lib/management/management.properties 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/management/management.properties 1970-01-01 00:00:00.000000000 +0000 @@ -1,331 +0,0 @@ -##################################################################### -# Default Configuration File for Java Platform Management -##################################################################### -# -# The Management Configuration file (in java.util.Properties format) -# will be read if one of the following system properties is set: -# -Dcom.sun.management.jmxremote.port= -# or -Dcom.sun.management.snmp.port= -# or -Dcom.sun.management.config.file= -# -# The default Management Configuration file is: -# -# $JRE/lib/management/management.properties -# -# Another location for the Management Configuration File can be specified -# by the following property on the Java command line: -# -# -Dcom.sun.management.config.file= -# -# If -Dcom.sun.management.config.file= is set, the port -# number for the management agent can be specified in the config file -# using the following lines: -# -# ################ Management Agent Port ######################### -# -# For setting the JMX RMI agent port use the following line -# com.sun.management.jmxremote.port= -# -# For setting the SNMP agent port use the following line -# com.sun.management.snmp.port= - -##################################################################### -# Optional Instrumentation -##################################################################### -# -# By default only the basic instrumentation with low overhead is on. -# The following properties allow to selectively turn on optional -# instrumentation which are off by default and may have some -# additional overhead. -# -# com.sun.management.enableThreadContentionMonitoring -# -# This option enables thread contention monitoring if the -# Java virtual machine supports such instrumentation. -# Refer to the specification for the java.lang.management.ThreadMBean -# interface - see isThreadContentionMonitoringSupported() method. -# - -# To enable thread contention monitoring, uncomment the following line -# com.sun.management.enableThreadContentionMonitoring - -##################################################################### -# SNMP Management Properties -##################################################################### -# -# If the system property -Dcom.sun.management.snmp.port= -# is set then -# - The SNMP agent (with the Java virtual machine MIB) is started -# that listens on the specified port for incoming SNMP requests. -# - the following properties for read for SNMP management. -# -# The configuration can be specified only at startup time. -# Later changes to the above system property (e.g. via setProperty method), this -# config file, or the ACL file has no effect to the running SNMP agent. -# - -# -# ##################### SNMP Trap Port ######################### -# -# com.sun.management.snmp.trap= -# Specifies the remote port number at which managers are expected -# to listen for trap. For each host defined in the ACL file, -# the SNMP agent will send traps at : -# Default for this property is 162. -# - -# To set port for sending traps to a different port use the following line -# com.sun.management.snmp.trap= - -# -# ################ SNMP listen interface ######################### -# -# com.sun.management.snmp.interface= -# Specifies the local interface on which the SNMP agent will bind. -# This is useful when running on machines which have several -# interfaces defined. It makes it possible to listen to a specific -# subnet accessible through that interface. -# Default for this property is "localhost". -# -# The format of the value for that property is any string accepted -# by java.net.InetAddress.getByName(String). -# - -# For restricting the port on which SNMP agent listens use the following line -# com.sun.management.snmp.interface= - -# -# #################### SNMP ACL file ######################### -# -# com.sun.management.snmp.acl=true|false -# Default for this property is true. (Case for true/false ignored) -# If this property is specified as false then the ACL file -# is not checked: all manager hosts are allowed all access. -# - -# For SNMP without checking ACL file uncomment the following line -# com.sun.management.snmp.acl=false - -# -# com.sun.management.snmp.acl.file=filepath -# Specifies location for ACL file -# This is optional - default location is -# $JRE/lib/management/snmp.acl -# -# If the property "com.sun.management.snmp.acl" is set to false, -# then this property and the ACL file are ignored. -# Otherwise the ACL file must exist and be in the valid format. -# If the ACL file is empty or non existent then no access is allowed. -# -# The SNMP agent will read the ACL file at startup time. -# Modification to the ACL file has no effect to any running SNMP -# agents which read that ACL file at startup. -# - -# For a non-default acl file location use the following line -# com.sun.management.snmp.acl.file=filepath - -##################################################################### -# RMI Management Properties -##################################################################### -# -# If system property -Dcom.sun.management.jmxremote.port= -# is set then -# - A MBean server is started -# - JRE Platform MBeans are registered in the MBean server -# - RMI connector is published in a private readonly registry at -# specified port using a well known name, "jmxrmi" -# - the following properties are read for JMX remote management. -# -# The configuration can be specified only at startup time. -# Later changes to above system property (e.g. via setProperty method), -# this config file, the password file, or the access file have no effect to the -# running MBean server, the connector, or the registry. -# - -# -# ########## RMI connector settings for local management ########## -# -# com.sun.management.jmxremote.local.only=true|false -# Default for this property is true. (Case for true/false ignored) -# If this property is specified as true then the local JMX RMI connector -# server will only accept connection requests from clients running on -# the host where the out-of-the-box JMX management agent is running. -# In order to ensure backwards compatibility this property could be -# set to false. However, deploying the local management agent in this -# way is discouraged because the local JMX RMI connector server will -# accept connection requests from any client either local or remote. -# For remote management the remote JMX RMI connector server should -# be used instead with authentication and SSL/TLS encryption enabled. -# - -# For allowing the local management agent accept local -# and remote connection requests use the following line -# com.sun.management.jmxremote.local.only=false - -# -# ###################### RMI SSL ############################# -# -# com.sun.management.jmxremote.ssl=true|false -# Default for this property is true. (Case for true/false ignored) -# If this property is specified as false then SSL is not used. -# - -# For RMI monitoring without SSL use the following line -# com.sun.management.jmxremote.ssl=false - -# com.sun.management.jmxremote.ssl.config.file=filepath -# Specifies the location of the SSL configuration file. A properties -# file can be used to supply the keystore and truststore location and -# password settings thus avoiding to pass them as cleartext in the -# command-line. -# -# The current implementation of the out-of-the-box management agent will -# look up and use the properties specified below to configure the SSL -# keystore and truststore, if present: -# javax.net.ssl.keyStore= -# javax.net.ssl.keyStorePassword= -# javax.net.ssl.trustStore= -# javax.net.ssl.trustStorePassword= -# Any other properties in the file will be ignored. This will allow us -# to extend the property set in the future if required by the default -# SSL implementation. -# -# If the property "com.sun.management.jmxremote.ssl" is set to false, -# then this property is ignored. -# - -# For supplying the keystore settings in a file use the following line -# com.sun.management.jmxremote.ssl.config.file=filepath - -# com.sun.management.jmxremote.ssl.enabled.cipher.suites= -# The value of this property is a string that is a comma-separated list -# of SSL/TLS cipher suites to enable. This property can be specified in -# conjunction with the previous property "com.sun.management.jmxremote.ssl" -# in order to control which particular SSL/TLS cipher suites are enabled -# for use by accepted connections. If this property is not specified then -# the SSL/TLS RMI Server Socket Factory uses the SSL/TLS cipher suites that -# are enabled by default. -# - -# com.sun.management.jmxremote.ssl.enabled.protocols= -# The value of this property is a string that is a comma-separated list -# of SSL/TLS protocol versions to enable. This property can be specified in -# conjunction with the previous property "com.sun.management.jmxremote.ssl" -# in order to control which particular SSL/TLS protocol versions are -# enabled for use by accepted connections. If this property is not -# specified then the SSL/TLS RMI Server Socket Factory uses the SSL/TLS -# protocol versions that are enabled by default. -# - -# com.sun.management.jmxremote.ssl.need.client.auth=true|false -# Default for this property is false. (Case for true/false ignored) -# If this property is specified as true in conjunction with the previous -# property "com.sun.management.jmxremote.ssl" then the SSL/TLS RMI Server -# Socket Factory will require client authentication. -# - -# For RMI monitoring with SSL client authentication use the following line -# com.sun.management.jmxremote.ssl.need.client.auth=true - -# com.sun.management.jmxremote.registry.ssl=true|false -# Default for this property is false. (Case for true/false ignored) -# If this property is specified as true then the RMI registry used -# to bind the RMIServer remote object is protected with SSL/TLS -# RMI Socket Factories that can be configured with the properties: -# com.sun.management.jmxremote.ssl.config.file -# com.sun.management.jmxremote.ssl.enabled.cipher.suites -# com.sun.management.jmxremote.ssl.enabled.protocols -# com.sun.management.jmxremote.ssl.need.client.auth -# If the two properties below are true at the same time, i.e. -# com.sun.management.jmxremote.ssl=true -# com.sun.management.jmxremote.registry.ssl=true -# then the RMIServer remote object and the RMI registry are -# both exported with the same SSL/TLS RMI Socket Factories. -# - -# For using an SSL/TLS protected RMI registry use the following line -# com.sun.management.jmxremote.registry.ssl=true - -# -# ################ RMI User authentication ################ -# -# com.sun.management.jmxremote.authenticate=true|false -# Default for this property is true. (Case for true/false ignored) -# If this property is specified as false then no authentication is -# performed and all users are allowed all access. -# - -# For RMI monitoring without any checking use the following line -# com.sun.management.jmxremote.authenticate=false - -# -# ################ RMI Login configuration ################### -# -# com.sun.management.jmxremote.login.config= -# Specifies the name of a JAAS login configuration entry to use when -# authenticating users of RMI monitoring. -# -# Setting this property is optional - the default login configuration -# specifies a file-based authentication that uses the password file. -# -# When using this property to override the default login configuration -# then the named configuration entry must be in a file that gets loaded -# by JAAS. In addition, the login module(s) specified in the configuration -# should use the name and/or password callbacks to acquire the user's -# credentials. See the NameCallback and PasswordCallback classes in the -# javax.security.auth.callback package for more details. -# -# If the property "com.sun.management.jmxremote.authenticate" is set to -# false, then this property and the password & access files are ignored. -# - -# For a non-default login configuration use the following line -# com.sun.management.jmxremote.login.config= - -# -# ################ RMI Password file location ################## -# -# com.sun.management.jmxremote.password.file=filepath -# Specifies location for password file -# This is optional - default location is -# $JRE/lib/management/jmxremote.password -# -# If the property "com.sun.management.jmxremote.authenticate" is set to -# false, then this property and the password & access files are ignored. -# Otherwise the password file must exist and be in the valid format. -# If the password file is empty or non-existent then no access is allowed. -# - -# For a non-default password file location use the following line -# com.sun.management.jmxremote.password.file=filepath - -# -# ################ RMI Access file location ##################### -# -# com.sun.management.jmxremote.access.file=filepath -# Specifies location for access file -# This is optional - default location is -# $JRE/lib/management/jmxremote.access -# -# If the property "com.sun.management.jmxremote.authenticate" is set to -# false, then this property and the password & access files are ignored. -# Otherwise, the access file must exist and be in the valid format. -# If the access file is empty or non-existent then no access is allowed. -# - -# For a non-default password file location use the following line -# com.sun.management.jmxremote.access.file=filepath -# - -# ################ Management agent listen interface ######################### -# -# com.sun.management.jmxremote.host= -# Specifies the local interface on which the JMX RMI agent will bind. -# This is useful when running on machines which have several -# interfaces defined. It makes it possible to listen to a specific -# subnet accessible through that interface. -# -# The format of the value for that property is any string accepted -# by java.net.InetAddress.getByName(String). -# diff -Nru pycharm-2018.3.5/jre64/lib/management/snmp.acl.template pycharm-2019.1/jre64/lib/management/snmp.acl.template --- pycharm-2018.3.5/jre64/lib/management/snmp.acl.template 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/management/snmp.acl.template 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ -# ---------------------------------------------------------------------- -# Template for SNMP Access Control List File -# -# o Copy this template to snmp.acl -# o Set access control for SNMP support -# o Change the permission of snmp.acl to be read-only -# by the owner. -# -# See below for the location of snmp.acl file. -# ---------------------------------------------------------------------- - -############################################################ -# SNMP Access Control List File -############################################################ -# -# Default location of this file is $JRE/lib/management/snmp.acl. -# You can specify an alternate location by specifying a property in -# the management config file $JRE/lib/management/management.properties -# or by specifying a system property (See that file for details). -# - - -############################################################## -# File permissions of the snmp.acl file -############################################################## -# -# Since there are cleartext community strings stored in this file, -# this ACL file must be readable by ONLY the owner, -# otherwise the program will exit with an error. -# -############################################################## -# Format of the acl group -############################################################## -# -# communities: a list of SNMP community strings to which the -# access control applies separated by commas. -# -# access: either "read-only" or "read-write". -# -# managers: a list of hosts to be granted the access rights. -# Each can be expressed as any one of the following: -# - hostname: hubble -# - ip v4 and v6 addresses: 123.456.789.12 , fe80::a00:20ff:fe9b:ea82 -# - ip v4 and v6 netmask prefix notation: 123.456.789.0/24, -# fe80::a00:20ff:fe9b:ea82/64 -# see RFC 2373 (http://www.ietf.org/rfc/rfc2373.txt) -# -# An example of two community groups for multiple hosts: -# acl = { -# { -# communities = public, private -# access = read-only -# managers = hubble, snowbell, nanak -# } -# { -# communities = jerry -# access = read-write -# managers = hubble, telescope -# } -# } -# -############################################################## -# Format of the trap group -############################################################## -# -# trap-community: a single SNMP community string that will be included -# in the traps sent to the hosts. -# -# hosts: a list of hosts to which the SNMP agent will send traps. -# -# An example of two trap community definitions for multiple hosts: -# trap = { -# { -# trap-community = public -# hosts = hubble, snowbell -# } -# { -# trap-community = private -# hosts = telescope -# } -# } -# -############################################################ -# -# Update the community strings (public and private) below -# before copying this template file -# -# Common SNMP ACL Example -# ------------------------ -# -# o Only localhost can connect, and access rights -# are limited to read-only -# o Traps are sent to localhost only -# -# -# acl = { -# { -# communities = public, private -# access = read-only -# managers = localhost -# } -# } -# -# -# trap = { -# { -# trap-community = public -# hosts = localhost -# } -# } Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/management-agent.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/management-agent.jar differ diff -Nru pycharm-2018.3.5/jre64/lib/meta-index pycharm-2019.1/jre64/lib/meta-index --- pycharm-2018.3.5/jre64/lib/meta-index 2019-01-29 16:01:13.000000000 +0000 +++ pycharm-2019.1/jre64/lib/meta-index 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ -% VERSION 2 -% WARNING: this file is auto-generated; do not edit -% UNSUPPORTED: this file and its format may change and/or -% may be removed in a future release -# charsets.jar -sun/nio -sun/awt -! jce.jar -javax/crypto -sun/security -! jsse.jar -sun/security -com/sun/net/ -! management-agent.jar -@ resources.jar -com/sun/java/util/jar/pack/ -META-INF/services/sun.util.spi.XmlPropertiesProvider -META-INF/services/javax.print.PrintServiceLookup -com/sun/corba/ -META-INF/services/javax.sound.midi.spi.SoundbankReader -sun/print -META-INF/services/javax.sound.midi.spi.MidiFileReader -META-INF/services/sun.java2d.cmm.CMMServiceProvider -javax/swing -META-INF/services/javax.sound.sampled.spi.AudioFileReader -META-INF/services/javax.sound.midi.spi.MidiDeviceProvider -sun/net -META-INF/services/javax.sound.sampled.spi.AudioFileWriter -com/sun/imageio/ -META-INF/services/sun.java2d.pipe.RenderingEngine -META-INF/mimetypes.default -META-INF/services/javax.sound.midi.spi.MidiFileWriter -sun/rmi -javax/sql -META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin -com/sun/rowset/ -META-INF/services/javax.print.StreamPrintServiceFactory -META-INF/mailcap.default -java/lang -sun/text -javax/xml -META-INF/services/javax.sound.sampled.spi.MixerProvider -com/sun/xml/ -META-INF/services/com.sun.tools.internal.xjc.Plugin -com/sun/java/swing/ -com/sun/jndi/ -com/sun/org/ -META-INF/services/javax.sound.sampled.spi.FormatConversionProvider -! rt.jar -com/sun/java/util/jar/pack/ -java/ -org/ietf/ -com/sun/beans/ -com/sun/tracing/ -com/sun/java/browser/ -com/sun/corba/ -com/sun/media/ -com/sun/awt/ -com/sun/management/ -sun/ -com/sun/jmx/ -com/sun/demo/ -com/sun/imageio/ -com/sun/net/ -com/sun/rmi/ -org/w3c/ -com/sun/swing/ -com/sun/activation/ -com/sun/nio/ -com/sun/rowset/ -org/jcp/ -com/sun/istack/ -jdk/ -com/sun/naming/ -org/xml/ -org/omg/ -com/sun/security/ -com/sun/xml/ -com/sun/java/swing/ -com/oracle/ -com/sun/java_cup/ -com/sun/jndi/ -com/sun/accessibility/ -com/sun/org/ -javax/ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/modules and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/modules differ diff -Nru pycharm-2018.3.5/jre64/lib/net.properties pycharm-2019.1/jre64/lib/net.properties --- pycharm-2018.3.5/jre64/lib/net.properties 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/net.properties 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ -############################################################ -# Default Networking Configuration File -# -# This file may contain default values for the networking system properties. -# These values are only used when the system properties are not specified -# on the command line or set programatically. -# For now, only the various proxy settings can be configured here. -############################################################ - -# Whether or not the DefaultProxySelector will default to System Proxy -# settings when they do exist. -# Set it to 'true' to enable this feature and check for platform -# specific proxy settings -# Note that the system properties that do explicitely set proxies -# (like http.proxyHost) do take precedence over the system settings -# even if java.net.useSystemProxies is set to true. - -java.net.useSystemProxies=false - -#------------------------------------------------------------------------ -# Proxy configuration for the various protocol handlers. -# DO NOT uncomment these lines if you have set java.net.useSystemProxies -# to true as the protocol specific properties will take precedence over -# system settings. -#------------------------------------------------------------------------ - -# HTTP Proxy settings. proxyHost is the name of the proxy server -# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default -# value is 80) and nonProxyHosts is a '|' separated list of hostnames which -# should be accessed directly, ignoring the proxy server (default value is -# localhost & 127.0.0.1). -# -# http.proxyHost= -# http.proxyPort=80 -http.nonProxyHosts=localhost|127.*|[::1] -# -# HTTPS Proxy Settings. proxyHost is the name of the proxy server -# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default -# value is 443). The HTTPS protocol handlers uses the http nonProxyHosts list. -# -# https.proxyHost= -# https.proxyPort=443 -# -# FTP Proxy settings. proxyHost is the name of the proxy server -# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default -# value is 80) and nonProxyHosts is a '|' separated list of hostnames which -# should be accessed directly, ignoring the proxy server (default value is -# localhost & 127.0.0.1). -# -# ftp.proxyHost= -# ftp.proxyPort=80 -ftp.nonProxyHosts=localhost|127.*|[::1] -# -# Gopher Proxy settings. proxyHost is the name of the proxy server -# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default -# value is 80) -# -# gopher.proxyHost= -# gopher.proxyPort=80 -# -# Socks proxy settings. socksProxyHost is the name of the proxy server -# (e.g. socks.domain.com), socksProxyPort is the port number to use -# (default value is 1080) -# -# socksProxyHost= -# socksProxyPort=1080 -# -# HTTP Keep Alive settings. remainingData is the maximum amount of data -# in kilobytes that will be cleaned off the underlying socket so that it -# can be reused (default value is 512K), queuedConnections is the maximum -# number of Keep Alive connections to be on the queue for clean up (default -# value is 10). -# http.KeepAlive.remainingData=512 -# http.KeepAlive.queuedConnections=10 - -# Authentication Scheme restrictions for HTTP and HTTPS. -# -# In some environments certain authentication schemes may be undesirable -# when proxying HTTP or HTTPS. For example, "Basic" results in effectively the -# cleartext transmission of the user's password over the physical network. -# This section describes the mechanism for disabling authentication schemes -# based on the scheme name. Disabled schemes will be treated as if they are not -# supported by the implementation. -# -# The 'jdk.http.auth.tunneling.disabledSchemes' property lists the authentication -# schemes that will be disabled when tunneling HTTPS over a proxy, HTTP CONNECT. -# The 'jdk.http.auth.proxying.disabledSchemes' property lists the authentication -# schemes that will be disabled when proxying HTTP. -# -# In both cases the property is a comma-separated list of, case-insensitive, -# authentication scheme names, as defined by their relevant RFCs. An -# implementation may, but is not required to, support common schemes whose names -# include: 'Basic', 'Digest', 'NTLM', 'Kerberos', 'Negotiate'. A scheme that -# is not known, or not supported, by the implementation is ignored. -# -# Note: This property is currently used by the JDK Reference implementation. It -# is not guaranteed to be examined and used by other implementations. -# -#jdk.http.auth.proxying.disabledSchemes= -jdk.http.auth.tunneling.disabledSchemes=Basic - Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/resources.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/resources.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/rt.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/rt.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/sa-jdi.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/sa-jdi.jar differ diff -Nru pycharm-2018.3.5/jre64/lib/security/blacklisted.certs pycharm-2019.1/jre64/lib/security/blacklisted.certs --- pycharm-2018.3.5/jre64/lib/security/blacklisted.certs 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/security/blacklisted.certs 2019-03-19 06:17:21.000000000 +0000 @@ -1,20 +1,20 @@ -Algorithm=SHA-256 -14E6D2764A4B06701C6CBC376A253775F79C782FBCB6C0EE6F99DE4BA1024ADD -31C8FD37DB9B56E708B03D1F01848B068C6DA66F36FB5D82C008C6040FA3E133 -3946901F46B0071E90D78279E82FABABCA177231A704BE72C5B0E8918566EA66 -450F1B421BB05C8609854884559C323319619E8B06B001EA2DCBB74A23AA3BE2 -4CBBF8256BC9888A8007B2F386940A2E394378B0D903CBB3863C5A6394B889CE -4FEE0163686ECBD65DB968E7494F55D84B25486D438E9DE558D629D28CD4D176 -5E83124D68D24E8E177E306DF643D5EA99C5A94D6FC34B072F7544A1CABB7C7B -76A45A496031E4DD2D7ED23E8F6FF97DBDEA980BAAC8B0BA94D7EDB551348645 -8A1BD21661C60015065212CC98B1ABB50DFD14C872A208E66BAE890F25C448AF -9ED8F9B0E8E42A1656B8E1DD18F42BA42DC06FE52686173BA2FC70E756F207DC -A686FEE577C88AB664D0787ECDFFF035F4806F3DE418DC9E4D516324FFF02083 -B8686723E415534BC0DBD16326F9486F85B0B0799BF6639334E61DAAE67F36CD -D24566BF315F4E597D6E381C87119FB4198F5E9E2607F5F4AB362EF7E2E7672F -D3A936E1A7775A45217C8296A1F22AC5631DCDEC45594099E78EEEBBEDCBA967 -DF21016B00FC54F9FE3BC8B039911BB216E9162FAD2FD14D990AB96E951B49BE -EC30C9C3065A06BB07DC5B1C6B497F370C1CA65C0F30C08E042BA6BCECC78F2C -F5B6F88F75D391A4B1EB336F9E201239FB6B1377DB8CFA7B84736216E5AFFFD7 -FC02FD48DB92D4DCE6F11679D38354CF750CFC7F584A520EB90BDE80E241F2BD -FDEDB5BDFCB67411513A61AEE5CB5B5D7C52AF06028EFC996CC1B05B1D6CEA2B +Algorithm=SHA-256 +14E6D2764A4B06701C6CBC376A253775F79C782FBCB6C0EE6F99DE4BA1024ADD +31C8FD37DB9B56E708B03D1F01848B068C6DA66F36FB5D82C008C6040FA3E133 +3946901F46B0071E90D78279E82FABABCA177231A704BE72C5B0E8918566EA66 +450F1B421BB05C8609854884559C323319619E8B06B001EA2DCBB74A23AA3BE2 +4CBBF8256BC9888A8007B2F386940A2E394378B0D903CBB3863C5A6394B889CE +4FEE0163686ECBD65DB968E7494F55D84B25486D438E9DE558D629D28CD4D176 +5E83124D68D24E8E177E306DF643D5EA99C5A94D6FC34B072F7544A1CABB7C7B +76A45A496031E4DD2D7ED23E8F6FF97DBDEA980BAAC8B0BA94D7EDB551348645 +8A1BD21661C60015065212CC98B1ABB50DFD14C872A208E66BAE890F25C448AF +9ED8F9B0E8E42A1656B8E1DD18F42BA42DC06FE52686173BA2FC70E756F207DC +A686FEE577C88AB664D0787ECDFFF035F4806F3DE418DC9E4D516324FFF02083 +B8686723E415534BC0DBD16326F9486F85B0B0799BF6639334E61DAAE67F36CD +D24566BF315F4E597D6E381C87119FB4198F5E9E2607F5F4AB362EF7E2E7672F +D3A936E1A7775A45217C8296A1F22AC5631DCDEC45594099E78EEEBBEDCBA967 +DF21016B00FC54F9FE3BC8B039911BB216E9162FAD2FD14D990AB96E951B49BE +EC30C9C3065A06BB07DC5B1C6B497F370C1CA65C0F30C08E042BA6BCECC78F2C +F5B6F88F75D391A4B1EB336F9E201239FB6B1377DB8CFA7B84736216E5AFFFD7 +FC02FD48DB92D4DCE6F11679D38354CF750CFC7F584A520EB90BDE80E241F2BD +FDEDB5BDFCB67411513A61AEE5CB5B5D7C52AF06028EFC996CC1B05B1D6CEA2B Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/security/cacerts and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/security/cacerts differ diff -Nru pycharm-2018.3.5/jre64/lib/security/default.policy pycharm-2019.1/jre64/lib/security/default.policy --- pycharm-2018.3.5/jre64/lib/security/default.policy 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/lib/security/default.policy 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,239 @@ +// +// Permissions required by modules stored in a run-time image and loaded +// by the platform class loader. +// +// NOTE that this file is not intended to be modified. If additional +// permissions need to be granted to the modules in this file, it is +// recommended that they be configured in a separate policy file or +// ${java.home}/conf/security/java.policy. +// + + +grant codeBase "jrt:/java.compiler" { + permission java.security.AllPermission; +}; + + +grant codeBase "jrt:/java.net.http" { + permission java.lang.RuntimePermission "accessClassInPackage.sun.net"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.net.util"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www"; + permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.misc"; + permission java.net.SocketPermission "*","connect,resolve"; + permission java.net.URLPermission "http:*","*:*"; + permission java.net.URLPermission "https:*","*:*"; + permission java.net.URLPermission "ws:*","*:*"; + permission java.net.URLPermission "wss:*","*:*"; + permission java.net.URLPermission "socket:*","CONNECT"; // proxy + // For request/response body processors, fromFile, asFile + permission java.io.FilePermission "<>","read,write,delete"; + permission java.util.PropertyPermission "*","read"; + permission java.net.NetPermission "getProxySelector"; +}; + +grant codeBase "jrt:/java.scripting" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/java.security.jgss" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/java.smartcardio" { + permission javax.smartcardio.CardPermission "*", "*"; + permission java.lang.RuntimePermission "loadLibrary.j2pcsc"; + permission java.lang.RuntimePermission + "accessClassInPackage.sun.security.jca"; + permission java.lang.RuntimePermission + "accessClassInPackage.sun.security.util"; + permission java.util.PropertyPermission + "javax.smartcardio.TerminalFactory.DefaultType", "read"; + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "os.arch", "read"; + permission java.util.PropertyPermission "sun.arch.data.model", "read"; + permission java.util.PropertyPermission + "sun.security.smartcardio.library", "read"; + permission java.util.PropertyPermission + "sun.security.smartcardio.t0GetResponse", "read"; + permission java.util.PropertyPermission + "sun.security.smartcardio.t1GetResponse", "read"; + permission java.util.PropertyPermission + "sun.security.smartcardio.t1StripLe", "read"; + // needed for looking up native PC/SC library + permission java.io.FilePermission "<>","read"; + permission java.security.SecurityPermission "putProviderProperty.SunPCSC"; + permission java.security.SecurityPermission + "clearProviderProperties.SunPCSC"; + permission java.security.SecurityPermission + "removeProviderProperty.SunPCSC"; +}; + +grant codeBase "jrt:/java.sql" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/java.sql.rowset" { + permission java.security.AllPermission; +}; + + +grant codeBase "jrt:/java.xml.crypto" { + permission java.lang.RuntimePermission + "accessClassInPackage.sun.security.util"; + permission java.util.PropertyPermission "*", "read"; + permission java.security.SecurityPermission "putProviderProperty.XMLDSig"; + permission java.security.SecurityPermission + "clearProviderProperties.XMLDSig"; + permission java.security.SecurityPermission + "removeProviderProperty.XMLDSig"; + permission java.security.SecurityPermission + "com.sun.org.apache.xml.internal.security.register"; + permission java.security.SecurityPermission + "getProperty.jdk.xml.dsig.secureValidationPolicy"; + permission java.lang.RuntimePermission + "accessClassInPackage.com.sun.org.apache.xml.internal.*"; + permission java.lang.RuntimePermission + "accessClassInPackage.com.sun.org.apache.xpath.internal"; + permission java.lang.RuntimePermission + "accessClassInPackage.com.sun.org.apache.xpath.internal.*"; +}; + + +grant codeBase "jrt:/jdk.accessibility" { + permission java.lang.RuntimePermission "accessClassInPackage.sun.awt"; +}; + +grant codeBase "jrt:/jdk.charsets" { + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "sun.nio.cs.map", "read"; + permission java.lang.RuntimePermission "charsetProvider"; + permission java.lang.RuntimePermission + "accessClassInPackage.jdk.internal.misc"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.cs"; +}; + +grant codeBase "jrt:/jdk.crypto.ec" { + permission java.lang.RuntimePermission + "accessClassInPackage.sun.security.*"; + permission java.lang.RuntimePermission "loadLibrary.sunec"; + permission java.security.SecurityPermission "putProviderProperty.SunEC"; + permission java.security.SecurityPermission "clearProviderProperties.SunEC"; + permission java.security.SecurityPermission "removeProviderProperty.SunEC"; +}; + +grant codeBase "jrt:/jdk.crypto.cryptoki" { + permission java.lang.RuntimePermission + "accessClassInPackage.sun.security.*"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch"; + permission java.lang.RuntimePermission "loadLibrary.j2pkcs11"; + permission java.util.PropertyPermission "sun.security.pkcs11.allowSingleThreadedModules", "read"; + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "os.arch", "read"; + permission java.util.PropertyPermission "jdk.crypto.KeyAgreement.legacyKDF", "read"; + permission java.security.SecurityPermission "putProviderProperty.*"; + permission java.security.SecurityPermission "clearProviderProperties.*"; + permission java.security.SecurityPermission "removeProviderProperty.*"; + permission java.security.SecurityPermission + "getProperty.auth.login.defaultCallbackHandler"; + permission java.security.SecurityPermission "authProvider.*"; + // Needed for reading PKCS11 config file and NSS library check + permission java.io.FilePermission "<>", "read"; +}; + +grant codeBase "jrt:/jdk.desktop" { + permission java.lang.RuntimePermission "accessClassInPackage.com.sun.awt"; +}; + +grant codeBase "jrt:/jdk.dynalink" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.httpserver" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.internal.le" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.internal.vm.compiler" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.internal.vm.compiler.management" { + permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.hotspot"; + permission java.lang.RuntimePermission "accessClassInPackage.jdk.vm.ci.runtime"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.management.spi"; + permission java.lang.RuntimePermission "sun.management.spi.PlatformMBeanProvider.subclass"; +}; + +grant codeBase "jrt:/jdk.jsobject" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.localedata" { + permission java.lang.RuntimePermission "accessClassInPackage.sun.text.*"; + permission java.lang.RuntimePermission "accessClassInPackage.sun.util.*"; +}; + +grant codeBase "jrt:/jdk.naming.dns" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.scripting.nashorn" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.scripting.nashorn.shell" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.security.auth" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.security.jgss" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/jdk.zipfs" { + permission java.io.FilePermission "<>", "read,write,delete"; + permission java.lang.RuntimePermission "fileSystemProvider"; + permission java.util.PropertyPermission "os.name", "read"; +}; + +// permissions needed by applications using java.desktop module +grant { + permission java.lang.RuntimePermission "accessClassInPackage.com.sun.beans"; + permission java.lang.RuntimePermission "accessClassInPackage.com.sun.beans.*"; + permission java.lang.RuntimePermission "accessClassInPackage.com.sun.java.swing.plaf.*"; + permission java.lang.RuntimePermission "accessClassInPackage.com.apple.*"; +}; +grant codeBase "jrt:/javafx.base" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/javafx.controls" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/javafx.fxml" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/javafx.graphics" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/javafx.media" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/javafx.swing" { + permission java.security.AllPermission; +}; + +grant codeBase "jrt:/javafx.web" { + permission java.security.AllPermission; +}; + diff -Nru pycharm-2018.3.5/jre64/lib/security/java.policy pycharm-2019.1/jre64/lib/security/java.policy --- pycharm-2018.3.5/jre64/lib/security/java.policy 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/security/java.policy 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ - -// Standard extensions get all permissions by default - -grant codeBase "file:${{java.ext.dirs}}/*" { - permission java.security.AllPermission; -}; - -// default permissions granted to all domains - -grant { - // Allows any thread to stop itself using the java.lang.Thread.stop() - // method that takes no argument. - // Note that this permission is granted by default only to remain - // backwards compatible. - // It is strongly recommended that you either remove this permission - // from this policy file or further restrict it to code sources - // that you specify, because Thread.stop() is potentially unsafe. - // See the API specification of java.lang.Thread.stop() for more - // information. - permission java.lang.RuntimePermission "stopThread"; - - // allows anyone to listen on dynamic ports - permission java.net.SocketPermission "localhost:0", "listen"; - - // "standard" properies that can be read by anyone - - permission java.util.PropertyPermission "java.version", "read"; - permission java.util.PropertyPermission "java.vendor", "read"; - permission java.util.PropertyPermission "java.vendor.url", "read"; - permission java.util.PropertyPermission "java.class.version", "read"; - permission java.util.PropertyPermission "os.name", "read"; - permission java.util.PropertyPermission "os.version", "read"; - permission java.util.PropertyPermission "os.arch", "read"; - permission java.util.PropertyPermission "file.separator", "read"; - permission java.util.PropertyPermission "path.separator", "read"; - permission java.util.PropertyPermission "line.separator", "read"; - - permission java.util.PropertyPermission "java.specification.version", "read"; - permission java.util.PropertyPermission "java.specification.vendor", "read"; - permission java.util.PropertyPermission "java.specification.name", "read"; - - permission java.util.PropertyPermission "java.vm.specification.version", "read"; - permission java.util.PropertyPermission "java.vm.specification.vendor", "read"; - permission java.util.PropertyPermission "java.vm.specification.name", "read"; - permission java.util.PropertyPermission "java.vm.version", "read"; - permission java.util.PropertyPermission "java.vm.vendor", "read"; - permission java.util.PropertyPermission "java.vm.name", "read"; -}; - diff -Nru pycharm-2018.3.5/jre64/lib/security/java.security pycharm-2019.1/jre64/lib/security/java.security --- pycharm-2018.3.5/jre64/lib/security/java.security 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/security/java.security 1970-01-01 00:00:00.000000000 +0000 @@ -1,910 +0,0 @@ -# -# This is the "master security properties file". -# -# An alternate java.security properties file may be specified -# from the command line via the system property -# -# -Djava.security.properties= -# -# This properties file appends to the master security properties file. -# If both properties files specify values for the same key, the value -# from the command-line properties file is selected, as it is the last -# one loaded. -# -# Also, if you specify -# -# -Djava.security.properties== (2 equals), -# -# then that properties file completely overrides the master security -# properties file. -# -# To disable the ability to specify an additional properties file from -# the command line, set the key security.overridePropertiesFile -# to false in the master security properties file. It is set to true -# by default. - -# In this file, various security properties are set for use by -# java.security classes. This is where users can statically register -# Cryptography Package Providers ("providers" for short). The term -# "provider" refers to a package or set of packages that supply a -# concrete implementation of a subset of the cryptography aspects of -# the Java Security API. A provider may, for example, implement one or -# more digital signature algorithms or message digest algorithms. -# -# Each provider must implement a subclass of the Provider class. -# To register a provider in this master security properties file, -# specify the Provider subclass name and priority in the format -# -# security.provider.= -# -# This declares a provider, and specifies its preference -# order n. The preference order is the order in which providers are -# searched for requested algorithms (when no specific provider is -# requested). The order is 1-based; 1 is the most preferred, followed -# by 2, and so on. -# -# must specify the subclass of the Provider class whose -# constructor sets the values of various properties that are required -# for the Java Security API to look up the algorithms or other -# facilities implemented by the provider. -# -# There must be at least one provider specification in java.security. -# There is a default provider that comes standard with the JDK. It -# is called the "SUN" provider, and its Provider subclass -# named Sun appears in the sun.security.provider package. Thus, the -# "SUN" provider is registered via the following: -# -# security.provider.1=sun.security.provider.Sun -# -# (The number 1 is used for the default provider.) -# -# Note: Providers can be dynamically registered instead by calls to -# either the addProvider or insertProviderAt method in the Security -# class. - -# -# List of providers and their preference orders (see above): -# -security.provider.1=sun.security.provider.Sun -security.provider.2=sun.security.rsa.SunRsaSign -security.provider.3=sun.security.ec.SunEC -security.provider.4=com.sun.net.ssl.internal.ssl.Provider -security.provider.5=com.sun.crypto.provider.SunJCE -security.provider.6=sun.security.jgss.SunProvider -security.provider.7=com.sun.security.sasl.Provider -security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI -security.provider.9=sun.security.smartcardio.SunPCSC - -# -# Sun Provider SecureRandom seed source. -# -# Select the primary source of seed data for the "SHA1PRNG" and -# "NativePRNG" SecureRandom implementations in the "Sun" provider. -# (Other SecureRandom implementations might also use this property.) -# -# On Unix-like systems (for example, Solaris/Linux/MacOS), the -# "NativePRNG" and "SHA1PRNG" implementations obtains seed data from -# special device files such as file:/dev/random. -# -# On Windows systems, specifying the URLs "file:/dev/random" or -# "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding -# mechanism for SHA1PRNG. -# -# By default, an attempt is made to use the entropy gathering device -# specified by the "securerandom.source" Security property. If an -# exception occurs while accessing the specified URL: -# -# SHA1PRNG: -# the traditional system/thread activity algorithm will be used. -# -# NativePRNG: -# a default value of /dev/random will be used. If neither -# are available, the implementation will be disabled. -# "file" is the only currently supported protocol type. -# -# The entropy gathering device can also be specified with the System -# property "java.security.egd". For example: -# -# % java -Djava.security.egd=file:/dev/random MainClass -# -# Specifying this System property will override the -# "securerandom.source" Security property. -# -# In addition, if "file:/dev/random" or "file:/dev/urandom" is -# specified, the "NativePRNG" implementation will be more preferred than -# SHA1PRNG in the Sun provider. -# -securerandom.source=file:/dev/random - -# -# A list of known strong SecureRandom implementations. -# -# To help guide applications in selecting a suitable strong -# java.security.SecureRandom implementation, Java distributions should -# indicate a list of known strong implementations using the property. -# -# This is a comma-separated list of algorithm and/or algorithm:provider -# entries. -# -securerandom.strongAlgorithms=NativePRNGBlocking:SUN - -# -# Class to instantiate as the javax.security.auth.login.Configuration -# provider. -# -login.configuration.provider=sun.security.provider.ConfigFile - -# -# Default login configuration file -# -#login.config.url.1=file:${user.home}/.java.login.config - -# -# Class to instantiate as the system Policy. This is the name of the class -# that will be used as the Policy object. -# -policy.provider=sun.security.provider.PolicyFile - -# The default is to have a single system-wide policy file, -# and a policy file in the user's home directory. -policy.url.1=file:${java.home}/lib/security/java.policy -policy.url.2=file:${user.home}/.java.policy - -# whether or not we expand properties in the policy file -# if this is set to false, properties (${...}) will not be expanded in policy -# files. -policy.expandProperties=true - -# whether or not we allow an extra policy to be passed on the command line -# with -Djava.security.policy=somefile. Comment out this line to disable -# this feature. -policy.allowSystemProperty=true - -# whether or not we look into the IdentityScope for trusted Identities -# when encountering a 1.1 signed JAR file. If the identity is found -# and is trusted, we grant it AllPermission. -policy.ignoreIdentityScope=false - -# -# Default keystore type. -# -keystore.type=jks - -# -# Controls compatibility mode for the JKS keystore type. -# -# When set to 'true', the JKS keystore type supports loading -# keystore files in either JKS or PKCS12 format. When set to 'false' -# it supports loading only JKS keystore files. -# -keystore.type.compat=true - -# -# List of comma-separated packages that start with or equal this string -# will cause a security exception to be thrown when -# passed to checkPackageAccess unless the -# corresponding RuntimePermission ("accessClassInPackage."+package) has -# been granted. -package.access=sun.,\ - com.sun.xml.internal.,\ - com.sun.imageio.,\ - com.sun.istack.internal.,\ - com.sun.jmx.,\ - com.sun.media.sound.,\ - com.sun.naming.internal.,\ - com.sun.proxy.,\ - com.sun.corba.se.,\ - com.sun.org.apache.bcel.internal.,\ - com.sun.org.apache.regexp.internal.,\ - com.sun.org.apache.xerces.internal.,\ - com.sun.org.apache.xpath.internal.,\ - com.sun.org.apache.xalan.internal.extensions.,\ - com.sun.org.apache.xalan.internal.lib.,\ - com.sun.org.apache.xalan.internal.res.,\ - com.sun.org.apache.xalan.internal.templates.,\ - com.sun.org.apache.xalan.internal.utils.,\ - com.sun.org.apache.xalan.internal.xslt.,\ - com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ - com.sun.org.apache.xalan.internal.xsltc.compiler.,\ - com.sun.org.apache.xalan.internal.xsltc.trax.,\ - com.sun.org.apache.xalan.internal.xsltc.util.,\ - com.sun.org.apache.xml.internal.res.,\ - com.sun.org.apache.xml.internal.security.,\ - com.sun.org.apache.xml.internal.serializer.utils.,\ - com.sun.org.apache.xml.internal.utils.,\ - com.sun.org.glassfish.,\ - com.oracle.xmlns.internal.,\ - com.oracle.webservices.internal.,\ - oracle.jrockit.jfr.,\ - org.jcp.xml.dsig.internal.,\ - jdk.internal.,\ - jdk.nashorn.internal.,\ - jdk.nashorn.tools.,\ - com.sun.activation.registries. - -# -# List of comma-separated packages that start with or equal this string -# will cause a security exception to be thrown when -# passed to checkPackageDefinition unless the -# corresponding RuntimePermission ("defineClassInPackage."+package) has -# been granted. -# -# by default, none of the class loaders supplied with the JDK call -# checkPackageDefinition. -# -package.definition=sun.,\ - com.sun.xml.internal.,\ - com.sun.imageio.,\ - com.sun.istack.internal.,\ - com.sun.jmx.,\ - com.sun.media.sound.,\ - com.sun.naming.internal.,\ - com.sun.proxy.,\ - com.sun.corba.se.,\ - com.sun.org.apache.bcel.internal.,\ - com.sun.org.apache.regexp.internal.,\ - com.sun.org.apache.xerces.internal.,\ - com.sun.org.apache.xpath.internal.,\ - com.sun.org.apache.xalan.internal.extensions.,\ - com.sun.org.apache.xalan.internal.lib.,\ - com.sun.org.apache.xalan.internal.res.,\ - com.sun.org.apache.xalan.internal.templates.,\ - com.sun.org.apache.xalan.internal.utils.,\ - com.sun.org.apache.xalan.internal.xslt.,\ - com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ - com.sun.org.apache.xalan.internal.xsltc.compiler.,\ - com.sun.org.apache.xalan.internal.xsltc.trax.,\ - com.sun.org.apache.xalan.internal.xsltc.util.,\ - com.sun.org.apache.xml.internal.res.,\ - com.sun.org.apache.xml.internal.security.,\ - com.sun.org.apache.xml.internal.serializer.utils.,\ - com.sun.org.apache.xml.internal.utils.,\ - com.sun.org.glassfish.,\ - com.oracle.xmlns.internal.,\ - com.oracle.webservices.internal.,\ - oracle.jrockit.jfr.,\ - org.jcp.xml.dsig.internal.,\ - jdk.internal.,\ - jdk.nashorn.internal.,\ - jdk.nashorn.tools.,\ - com.sun.activation.registries. - -# -# Determines whether this properties file can be appended to -# or overridden on the command line via -Djava.security.properties -# -security.overridePropertiesFile=true - -# -# Determines the default key and trust manager factory algorithms for -# the javax.net.ssl package. -# -ssl.KeyManagerFactory.algorithm=SunX509 -ssl.TrustManagerFactory.algorithm=PKIX - -# -# The Java-level namelookup cache policy for successful lookups: -# -# any negative value: caching forever -# any positive value: the number of seconds to cache an address for -# zero: do not cache -# -# default value is forever (FOREVER). For security reasons, this -# caching is made forever when a security manager is set. When a security -# manager is not set, the default behavior in this implementation -# is to cache for 30 seconds. -# -# NOTE: setting this to anything other than the default value can have -# serious security implications. Do not set it unless -# you are sure you are not exposed to DNS spoofing attack. -# -#networkaddress.cache.ttl=-1 - -# The Java-level namelookup cache policy for failed lookups: -# -# any negative value: cache forever -# any positive value: the number of seconds to cache negative lookup results -# zero: do not cache -# -# In some Microsoft Windows networking environments that employ -# the WINS name service in addition to DNS, name service lookups -# that fail may take a noticeably long time to return (approx. 5 seconds). -# For this reason the default caching policy is to maintain these -# results for 10 seconds. -# -# -networkaddress.cache.negative.ttl=10 - -# -# Properties to configure OCSP for certificate revocation checking -# - -# Enable OCSP -# -# By default, OCSP is not used for certificate revocation checking. -# This property enables the use of OCSP when set to the value "true". -# -# NOTE: SocketPermission is required to connect to an OCSP responder. -# -# Example, -# ocsp.enable=true - -# -# Location of the OCSP responder -# -# By default, the location of the OCSP responder is determined implicitly -# from the certificate being validated. This property explicitly specifies -# the location of the OCSP responder. The property is used when the -# Authority Information Access extension (defined in RFC 3280) is absent -# from the certificate or when it requires overriding. -# -# Example, -# ocsp.responderURL=http://ocsp.example.net:80 - -# -# Subject name of the OCSP responder's certificate -# -# By default, the certificate of the OCSP responder is that of the issuer -# of the certificate being validated. This property identifies the certificate -# of the OCSP responder when the default does not apply. Its value is a string -# distinguished name (defined in RFC 2253) which identifies a certificate in -# the set of certificates supplied during cert path validation. In cases where -# the subject name alone is not sufficient to uniquely identify the certificate -# then both the "ocsp.responderCertIssuerName" and -# "ocsp.responderCertSerialNumber" properties must be used instead. When this -# property is set then those two properties are ignored. -# -# Example, -# ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp" - -# -# Issuer name of the OCSP responder's certificate -# -# By default, the certificate of the OCSP responder is that of the issuer -# of the certificate being validated. This property identifies the certificate -# of the OCSP responder when the default does not apply. Its value is a string -# distinguished name (defined in RFC 2253) which identifies a certificate in -# the set of certificates supplied during cert path validation. When this -# property is set then the "ocsp.responderCertSerialNumber" property must also -# be set. When the "ocsp.responderCertSubjectName" property is set then this -# property is ignored. -# -# Example, -# ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp" - -# -# Serial number of the OCSP responder's certificate -# -# By default, the certificate of the OCSP responder is that of the issuer -# of the certificate being validated. This property identifies the certificate -# of the OCSP responder when the default does not apply. Its value is a string -# of hexadecimal digits (colon or space separators may be present) which -# identifies a certificate in the set of certificates supplied during cert path -# validation. When this property is set then the "ocsp.responderCertIssuerName" -# property must also be set. When the "ocsp.responderCertSubjectName" property -# is set then this property is ignored. -# -# Example, -# ocsp.responderCertSerialNumber=2A:FF:00 - -# -# Policy for failed Kerberos KDC lookups: -# -# When a KDC is unavailable (network error, service failure, etc), it is -# put inside a blacklist and accessed less often for future requests. The -# value (case-insensitive) for this policy can be: -# -# tryLast -# KDCs in the blacklist are always tried after those not on the list. -# -# tryLess[:max_retries,timeout] -# KDCs in the blacklist are still tried by their order in the configuration, -# but with smaller max_retries and timeout values. max_retries and timeout -# are optional numerical parameters (default 1 and 5000, which means once -# and 5 seconds). Please notes that if any of the values defined here is -# more than what is defined in krb5.conf, it will be ignored. -# -# Whenever a KDC is detected as available, it is removed from the blacklist. -# The blacklist is reset when krb5.conf is reloaded. You can add -# refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is -# reloaded whenever a JAAS authentication is attempted. -# -# Example, -# krb5.kdc.bad.policy = tryLast -# krb5.kdc.bad.policy = tryLess:2,2000 -krb5.kdc.bad.policy = tryLast - -# Algorithm restrictions for certification path (CertPath) processing -# -# In some environments, certain algorithms or key lengths may be undesirable -# for certification path building and validation. For example, "MD2" is -# generally no longer considered to be a secure hash algorithm. This section -# describes the mechanism for disabling algorithms based on algorithm name -# and/or key length. This includes algorithms used in certificates, as well -# as revocation information such as CRLs and signed OCSP Responses. -# The syntax of the disabled algorithm string is described as follows: -# DisabledAlgorithms: -# " DisabledAlgorithm { , DisabledAlgorithm } " -# -# DisabledAlgorithm: -# AlgorithmName [Constraint] { '&' Constraint } -# -# AlgorithmName: -# (see below) -# -# Constraint: -# KeySizeConstraint | CAConstraint | DenyAfterConstraint | -# UsageConstraint -# -# KeySizeConstraint: -# keySize Operator KeyLength -# -# Operator: -# <= | < | == | != | >= | > -# -# KeyLength: -# Integer value of the algorithm's key length in bits -# -# CAConstraint: -# jdkCA -# -# DenyAfterConstraint: -# denyAfter YYYY-MM-DD -# -# UsageConstraint: -# usage [TLSServer] [TLSClient] [SignedJAR] -# -# The "AlgorithmName" is the standard algorithm name of the disabled -# algorithm. See "Java Cryptography Architecture Standard Algorithm Name -# Documentation" for information about Standard Algorithm Names. Matching -# is performed using a case-insensitive sub-element matching rule. (For -# example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and -# "ECDSA" for signatures.) If the assertion "AlgorithmName" is a -# sub-element of the certificate algorithm name, the algorithm will be -# rejected during certification path building and validation. For example, -# the assertion algorithm name "DSA" will disable all certificate algorithms -# that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion -# will not disable algorithms related to "ECDSA". -# -# A "Constraint" defines restrictions on the keys and/or certificates for -# a specified AlgorithmName: -# -# KeySizeConstraint: -# keySize Operator KeyLength -# The constraint requires a key of a valid size range if the -# "AlgorithmName" is of a key algorithm. The "KeyLength" indicates -# the key size specified in number of bits. For example, -# "RSA keySize <= 1024" indicates that any RSA key with key size less -# than or equal to 1024 bits should be disabled, and -# "RSA keySize < 1024, RSA keySize > 2048" indicates that any RSA key -# with key size less than 1024 or greater than 2048 should be disabled. -# This constraint is only used on algorithms that have a key size. -# -# CAConstraint: -# jdkCA -# This constraint prohibits the specified algorithm only if the -# algorithm is used in a certificate chain that terminates at a marked -# trust anchor in the lib/security/cacerts keystore. If the jdkCA -# constraint is not set, then all chains using the specified algorithm -# are restricted. jdkCA may only be used once in a DisabledAlgorithm -# expression. -# Example:  To apply this constraint to SHA-1 certificates, include -# the following:  "SHA1 jdkCA" -# -# DenyAfterConstraint: -# denyAfter YYYY-MM-DD -# This constraint prohibits a certificate with the specified algorithm -# from being used after the date regardless of the certificate's -# validity.  JAR files that are signed and timestamped before the -# constraint date with certificates containing the disabled algorithm -# will not be restricted.  The date is processed in the UTC timezone. -# This constraint can only be used once in a DisabledAlgorithm -# expression. -# Example: To deny usage of RSA 2048 bit certificates after Feb 3 2020, -# use the following: "RSA keySize == 2048 & denyAfter 2020-02-03" -# -# UsageConstraint: -# usage [TLSServer] [TLSClient] [SignedJAR] -# This constraint prohibits the specified algorithm for -# a specified usage. This should be used when disabling an algorithm -# for all usages is not practical. 'TLSServer' restricts the algorithm -# in TLS server certificate chains when server authentication is -# performed. 'TLSClient' restricts the algorithm in TLS client -# certificate chains when client authentication is performed. -# 'SignedJAR' constrains use of certificates in signed jar files. -# The usage type follows the keyword and more than one usage type can -# be specified with a whitespace delimiter. -# Example: "SHA1 usage TLSServer TLSClient" -# -# When an algorithm must satisfy more than one constraint, it must be -# delimited by an ampersand '&'. For example, to restrict certificates in a -# chain that terminate at a distribution provided trust anchor and contain -# RSA keys that are less than or equal to 1024 bits, add the following -# constraint: "RSA keySize <= 1024 & jdkCA". -# -# All DisabledAlgorithms expressions are processed in the order defined in the -# property. This requires lower keysize constraints to be specified -# before larger keysize constraints of the same algorithm. For example: -# "RSA keySize < 1024 & jdkCA, RSA keySize < 2048". -# -# Note: The algorithm restrictions do not apply to trust anchors or -# self-signed certificates. -# -# Note: This property is currently used by Oracle's PKIX implementation. It -# is not guaranteed to be examined and used by other implementations. -# -# Example: -# jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048 -# -# -jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage TLSServer, \ - RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224 - -# -# Algorithm restrictions for signed JAR files -# -# In some environments, certain algorithms or key lengths may be undesirable -# for signed JAR validation. For example, "MD2" is generally no longer -# considered to be a secure hash algorithm. This section describes the -# mechanism for disabling algorithms based on algorithm name and/or key length. -# JARs signed with any of the disabled algorithms or key sizes will be treated -# as unsigned. -# -# The syntax of the disabled algorithm string is described as follows: -# DisabledAlgorithms: -# " DisabledAlgorithm { , DisabledAlgorithm } " -# -# DisabledAlgorithm: -# AlgorithmName [Constraint] { '&' Constraint } -# -# AlgorithmName: -# (see below) -# -# Constraint: -# KeySizeConstraint | DenyAfterConstraint -# -# KeySizeConstraint: -# keySize Operator KeyLength -# -# DenyAfterConstraint: -# denyAfter YYYY-MM-DD -# -# Operator: -# <= | < | == | != | >= | > -# -# KeyLength: -# Integer value of the algorithm's key length in bits -# -# Note: This property is currently used by the JDK Reference -# implementation. It is not guaranteed to be examined and used by other -# implementations. -# -# See "jdk.certpath.disabledAlgorithms" for syntax descriptions. -# -jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024 - -# -# Algorithm restrictions for Secure Socket Layer/Transport Layer Security -# (SSL/TLS) processing -# -# In some environments, certain algorithms or key lengths may be undesirable -# when using SSL/TLS. This section describes the mechanism for disabling -# algorithms during SSL/TLS security parameters negotiation, including -# protocol version negotiation, cipher suites selection, peer authentication -# and key exchange mechanisms. -# -# Disabled algorithms will not be negotiated for SSL/TLS connections, even -# if they are enabled explicitly in an application. -# -# For PKI-based peer authentication and key exchange mechanisms, this list -# of disabled algorithms will also be checked during certification path -# building and validation, including algorithms used in certificates, as -# well as revocation information such as CRLs and signed OCSP Responses. -# This is in addition to the jdk.certpath.disabledAlgorithms property above. -# -# See the specification of "jdk.certpath.disabledAlgorithms" for the -# syntax of the disabled algorithm string. -# -# Note: The algorithm restrictions do not apply to trust anchors or -# self-signed certificates. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be examined and used by other implementations. -# -# Example: -# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 -jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, \ - EC keySize < 224 - -# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS) -# processing in JSSE implementation. -# -# In some environments, a certain algorithm may be undesirable but it -# cannot be disabled because of its use in legacy applications. Legacy -# algorithms may still be supported, but applications should not use them -# as the security strength of legacy algorithms are usually not strong enough -# in practice. -# -# During SSL/TLS security parameters negotiation, legacy algorithms will -# not be negotiated unless there are no other candidates. -# -# The syntax of the legacy algorithms string is described as this Java -# BNF-style: -# LegacyAlgorithms: -# " LegacyAlgorithm { , LegacyAlgorithm } " -# -# LegacyAlgorithm: -# AlgorithmName (standard JSSE algorithm name) -# -# See the specification of security property "jdk.certpath.disabledAlgorithms" -# for the syntax and description of the "AlgorithmName" notation. -# -# Per SSL/TLS specifications, cipher suites have the form: -# SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg -# or -# TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg -# -# For example, the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA uses RSA as the -# key exchange algorithm, AES_128_CBC (128 bits AES cipher algorithm in CBC -# mode) as the cipher (encryption) algorithm, and SHA-1 as the message digest -# algorithm for HMAC. -# -# The LegacyAlgorithm can be one of the following standard algorithm names: -# 1. JSSE cipher suite name, e.g., TLS_RSA_WITH_AES_128_CBC_SHA -# 2. JSSE key exchange algorithm name, e.g., RSA -# 3. JSSE cipher (encryption) algorithm name, e.g., AES_128_CBC -# 4. JSSE message digest algorithm name, e.g., SHA -# -# See SSL/TLS specifications and "Java Cryptography Architecture Standard -# Algorithm Name Documentation" for information about the algorithm names. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be examined and used by other implementations. -# There is no guarantee the property will continue to exist or be of the -# same syntax in future releases. -# -# Example: -# jdk.tls.legacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5 -# -jdk.tls.legacyAlgorithms= \ - K_NULL, C_NULL, M_NULL, \ - DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_anon_EXPORT, DH_DSS_EXPORT, \ - DH_RSA_EXPORT, RSA_EXPORT, \ - DH_anon, ECDH_anon, \ - RC4_128, RC4_40, DES_CBC, DES40_CBC, \ - 3DES_EDE_CBC - -# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) -# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. -# -# In traditional SSL/TLS/DTLS connections where finite field DHE parameters -# negotiation mechanism is not used, the server offers the client group -# parameters, base generator g and prime modulus p, for DHE key exchange. -# It is recommended to use dynamic group parameters. This property defines -# a mechanism that allows you to specify custom group parameters. -# -# The syntax of this property string is described as this Java BNF-style: -# DefaultDHEParameters: -# DefinedDHEParameters { , DefinedDHEParameters } -# -# DefinedDHEParameters: -# "{" DHEPrimeModulus , DHEBaseGenerator "}" -# -# DHEPrimeModulus: -# HexadecimalDigits -# -# DHEBaseGenerator: -# HexadecimalDigits -# -# HexadecimalDigits: -# HexadecimalDigit { HexadecimalDigit } -# -# HexadecimalDigit: one of -# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f -# -# Whitespace characters are ignored. -# -# The "DefinedDHEParameters" defines the custom group parameters, prime -# modulus p and base generator g, for a particular size of prime modulus p. -# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the -# "DHEBaseGenerator" defines the hexadecimal base generator g of a group -# parameter. It is recommended to use safe primes for the custom group -# parameters. -# -# If this property is not defined or the value is empty, the underlying JSSE -# provider's default group parameter is used for each connection. -# -# If the property value does not follow the grammar, or a particular group -# parameter is not valid, the connection will fall back and use the -# underlying JSSE provider's default group parameter. -# -# Note: This property is currently used by OpenJDK's JSSE implementation. It -# is not guaranteed to be examined and used by other implementations. -# -# Example: -# jdk.tls.server.defaultDHEParameters= -# { \ -# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ -# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ -# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ -# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ -# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ -# FFFFFFFF FFFFFFFF, 2} - -# Cryptographic Jurisdiction Policy defaults -# -# Import and export control rules on cryptographic software vary from -# country to country. By default, the JDK provides two different sets of -# cryptographic policy files: -# -# unlimited: These policy files contain no restrictions on cryptographic -# strengths or algorithms. -# -# limited: These policy files contain more restricted cryptographic -# strengths, and are still available if your country or -# usage requires the traditional restrictive policy. -# -# The JDK JCE framework uses the unlimited policy files by default. -# However the user may explicitly choose a set either by defining the -# "crypto.policy" Security property or by installing valid JCE policy -# jar files into the traditional JDK installation location. To better -# support older JDK Update releases, the "crypto.policy" property is not -# defined by default. See below for more information. -# -# The following logic determines which policy files are used: -# -# refers to the directory where the JRE was -# installed and may be determined using the "java.home" -# System property. -# -# 1. If the Security property "crypto.policy" has been defined, -# then the following mechanism is used: -# -# The policy files are stored as jar files in subdirectories of -# /lib/security/policy. Each directory contains a complete -# set of policy files. -# -# The "crypto.policy" Security property controls the directory -# selection, and thus the effective cryptographic policy. -# -# The default set of directories is: -# -# limited | unlimited -# -# 2. If the "crypto.policy" property is not set and the traditional -# US_export_policy.jar and local_policy.jar files -# (e.g. limited/unlimited) are found in the legacy -# /lib/security directory, then the rules embedded within -# those jar files will be used. This helps preserve compatibility -# for users upgrading from an older installation. -# -# 3. If the jar files are not present in the legacy location -# and the "crypto.policy" Security property is not defined, -# then the JDK will use the unlimited settings (equivalent to -# crypto.policy=unlimited) -# -# Please see the JCA documentation for additional information on these -# files and formats. -# -# YOU ARE ADVISED TO CONSULT YOUR EXPORT/IMPORT CONTROL COUNSEL OR ATTORNEY -# TO DETERMINE THE EXACT REQUIREMENTS. -# -# Please note that the JCE for Java SE, including the JCE framework, -# cryptographic policy files, and standard JCE providers provided with -# the Java SE, have been reviewed and approved for export as mass market -# encryption item by the US Bureau of Industry and Security. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be examined and used by other implementations. -# -#crypto.policy=unlimited - -# -# The policy for the XML Signature secure validation mode. The mode is -# enabled by setting the property "org.jcp.xml.dsig.secureValidation" to -# true with the javax.xml.crypto.XMLCryptoContext.setProperty() method, -# or by running the code with a SecurityManager. -# -# Policy: -# Constraint {"," Constraint } -# Constraint: -# AlgConstraint | MaxTransformsConstraint | MaxReferencesConstraint | -# ReferenceUriSchemeConstraint | KeySizeConstraint | OtherConstraint -# AlgConstraint -# "disallowAlg" Uri -# MaxTransformsConstraint: -# "maxTransforms" Integer -# MaxReferencesConstraint: -# "maxReferences" Integer -# ReferenceUriSchemeConstraint: -# "disallowReferenceUriSchemes" String { String } -# KeySizeConstraint: -# "minKeySize" KeyAlg Integer -# OtherConstraint: -# "noDuplicateIds" | "noRetrievalMethodLoops" -# -# For AlgConstraint, Uri is the algorithm URI String that is not allowed. -# See the XML Signature Recommendation for more information on algorithm -# URI Identifiers. For KeySizeConstraint, KeyAlg is the standard algorithm -# name of the key type (ex: "RSA"). If the MaxTransformsConstraint, -# MaxReferencesConstraint or KeySizeConstraint (for the same key type) is -# specified more than once, only the last entry is enforced. -# -# Note: This property is currently used by the JDK Reference implementation. It -# is not guaranteed to be examined and used by other implementations. -# -jdk.xml.dsig.secureValidationPolicy=\ - disallowAlg http://www.w3.org/TR/1999/REC-xslt-19991116,\ - disallowAlg http://www.w3.org/2001/04/xmldsig-more#rsa-md5,\ - disallowAlg http://www.w3.org/2001/04/xmldsig-more#hmac-md5,\ - disallowAlg http://www.w3.org/2001/04/xmldsig-more#md5,\ - maxTransforms 5,\ - maxReferences 30,\ - disallowReferenceUriSchemes file http https,\ - minKeySize RSA 1024,\ - minKeySize DSA 1024,\ - noDuplicateIds,\ - noRetrievalMethodLoops - -# -# Serialization process-wide filter -# -# A filter, if configured, is used by java.io.ObjectInputStream during -# deserialization to check the contents of the stream. -# A filter is configured as a sequence of patterns, each pattern is either -# matched against the name of a class in the stream or defines a limit. -# Patterns are separated by ";" (semicolon). -# Whitespace is significant and is considered part of the pattern. -# -# If a pattern includes a "=", it sets a limit. -# If a limit appears more than once the last value is used. -# Limits are checked before classes regardless of the order in the sequence of patterns. -# If any of the limits are exceeded, the filter status is REJECTED. -# -# maxdepth=value - the maximum depth of a graph -# maxrefs=value - the maximum number of internal references -# maxbytes=value - the maximum number of bytes in the input stream -# maxarray=value - the maximum array length allowed -# -# Other patterns, from left to right, match the class or package name as -# returned from Class.getName. -# If the class is an array type, the class or package to be matched is the element type. -# Arrays of any number of dimensions are treated the same as the element type. -# For example, a pattern of "!example.Foo", rejects creation of any instance or -# array of example.Foo. -# -# If the pattern starts with "!", the status is REJECTED if the remaining pattern -# is matched; otherwise the status is ALLOWED if the pattern matches. -# If the pattern ends with ".**" it matches any class in the package and all subpackages. -# If the pattern ends with ".*" it matches any class in the package. -# If the pattern ends with "*", it matches any class with the pattern as a prefix. -# If the pattern is equal to the class name, it matches. -# Otherwise, the status is UNDECIDED. -# -#jdk.serialFilter=pattern;pattern - -# -# RMI Registry Serial Filter -# -# The filter pattern uses the same format as jdk.serialFilter. -# This filter can override the builtin filter if additional types need to be -# allowed or rejected from the RMI Registry. -# -#sun.rmi.registry.registryFilter=pattern;pattern - -# -# RMI Distributed Garbage Collector (DGC) Serial Filter -# -# The filter pattern uses the same format as jdk.serialFilter. -# This filter can override the builtin filter if additional types need to be -# allowed or rejected from the RMI DGC. -# -# The builtin DGC filter can approximately be represented as the filter pattern: -# -#sun.rmi.transport.dgcFilter=\ -# java.rmi.server.ObjID;\ -# java.rmi.server.UID;\ -# java.rmi.dgc.VMID;\ -# java.rmi.dgc.Lease;\ -# maxdepth=5;maxarray=10000 - Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/security/policy/limited/local_policy.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/security/policy/limited/local_policy.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/security/policy/limited/US_export_policy.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/security/policy/limited/US_export_policy.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/security/policy/unlimited/local_policy.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/security/policy/unlimited/local_policy.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/security/policy/unlimited/US_export_policy.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/security/policy/unlimited/US_export_policy.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/security/public_suffix_list.dat and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/security/public_suffix_list.dat differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/server/libjsig.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/server/libjsig.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/server/libjvm.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/server/libjvm.so differ diff -Nru pycharm-2018.3.5/jre64/lib/server/Xusage.txt pycharm-2019.1/jre64/lib/server/Xusage.txt --- pycharm-2018.3.5/jre64/lib/server/Xusage.txt 1970-01-01 00:00:00.000000000 +0000 +++ pycharm-2019.1/jre64/lib/server/Xusage.txt 2019-03-19 06:17:21.000000000 +0000 @@ -0,0 +1,22 @@ + -Xmixed mixed mode execution (default) + -Xint interpreted mode execution only + -Xbootclasspath: + set search path for bootstrap classes and resources + -Xbootclasspath/a: + append to end of bootstrap class path + -Xbootclasspath/p: + prepend in front of bootstrap class path + -Xnoclassgc disable class garbage collection + -Xlog: control JVM logging, use -Xlog:help for details + -Xbatch disable background compilation + -Xms set initial Java heap size + -Xmx set maximum Java heap size + -Xss set java thread stack size + -Xfuture enable strictest checks, anticipating future default + -Xrs reduce use of OS signals by Java/VM (see documentation) + -Xcheck:jni perform additional checks for JNI functions + -Xshare:off do not attempt to use shared class data + -Xshare:auto use shared class data if possible (default) + -Xshare:on require using shared class data, otherwise fail. + +The -X options are non-standard and subject to change without notice. diff -Nru pycharm-2018.3.5/jre64/lib/sound.properties pycharm-2019.1/jre64/lib/sound.properties --- pycharm-2018.3.5/jre64/lib/sound.properties 2019-01-29 16:01:02.000000000 +0000 +++ pycharm-2019.1/jre64/lib/sound.properties 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -############################################################ -# Sound Configuration File -############################################################ -# -# This properties file is used to specify default service -# providers for javax.sound.midi.MidiSystem and -# javax.sound.sampled.AudioSystem. -# -# The following keys are recognized by MidiSystem methods: -# -# javax.sound.midi.Receiver -# javax.sound.midi.Sequencer -# javax.sound.midi.Synthesizer -# javax.sound.midi.Transmitter -# -# The following keys are recognized by AudioSystem methods: -# -# javax.sound.sampled.Clip -# javax.sound.sampled.Port -# javax.sound.sampled.SourceDataLine -# javax.sound.sampled.TargetDataLine -# -# The values specify the full class name of the service -# provider, or the device name. -# -# See the class descriptions for details. -# -# Example 1: -# Use MyDeviceProvider as default for SourceDataLines: -# javax.sound.sampled.SourceDataLine=com.xyz.MyDeviceProvider -# -# Example 2: -# Specify the default Synthesizer by its name "InternalSynth". -# javax.sound.midi.Synthesizer=#InternalSynth -# -# Example 3: -# Specify the default Receiver by provider and name: -# javax.sound.midi.Receiver=com.sun.media.sound.MidiProvider#SunMIDI1 -# Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/jre64/lib/tzdb.dat and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/jre64/lib/tzdb.dat differ diff -Nru pycharm-2018.3.5/jre64/LICENSE pycharm-2019.1/jre64/LICENSE --- pycharm-2018.3.5/jre64/LICENSE 2019-01-29 16:01:04.000000000 +0000 +++ pycharm-2019.1/jre64/LICENSE 1970-01-01 00:00:00.000000000 +0000 @@ -1,347 +0,0 @@ -The GNU General Public License (GPL) - -Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - -Preamble - -The licenses for most software are designed to take away your freedom to share -and change it. By contrast, the GNU General Public License is intended to -guarantee your freedom to share and change free software--to make sure the -software is free for all its users. This General Public License applies to -most of the Free Software Foundation's software and to any other program whose -authors commit to using it. (Some other Free Software Foundation software is -covered by the GNU Library General Public License instead.) You can apply it to -your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our -General Public Licenses are designed to make sure that you have the freedom to -distribute copies of free software (and charge for this service if you wish), -that you receive source code or can get it if you want it, that you can change -the software or use pieces of it in new free programs; and that you know you -can do these things. - -To protect your rights, we need to make restrictions that forbid anyone to deny -you these rights or to ask you to surrender the rights. These restrictions -translate to certain responsibilities for you if you distribute copies of the -software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis or for -a fee, you must give the recipients all the rights that you have. You must -make sure that they, too, receive or can get the source code. And you must -show them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and (2) -offer you this license which gives you legal permission to copy, distribute -and/or modify the software. - -Also, for each author's protection and ours, we want to make certain that -everyone understands that there is no warranty for this free software. If the -software is modified by someone else and passed on, we want its recipients to -know that what they have is not the original, so that any problems introduced -by others will not reflect on the original authors' reputations. - -Finally, any free program is threatened constantly by software patents. We -wish to avoid the danger that redistributors of a free program will -individually obtain patent licenses, in effect making the program proprietary. -To prevent this, we have made it clear that any patent must be licensed for -everyone's free use or not licensed at all. - -The precise terms and conditions for copying, distribution and modification -follow. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License applies to any program or other work which contains a notice -placed by the copyright holder saying it may be distributed under the terms of -this General Public License. The "Program", below, refers to any such program -or work, and a "work based on the Program" means either the Program or any -derivative work under copyright law: that is to say, a work containing the -Program or a portion of it, either verbatim or with modifications and/or -translated into another language. (Hereinafter, translation is included -without limitation in the term "modification".) Each licensee is addressed as -"you". - -Activities other than copying, distribution and modification are not covered by -this License; they are outside its scope. The act of running the Program is -not restricted, and the output from the Program is covered only if its contents -constitute a work based on the Program (independent of having been made by -running the Program). Whether that is true depends on what the Program does. - -1. You may copy and distribute verbatim copies of the Program's source code as -you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this License -and to the absence of any warranty; and give any other recipients of the -Program a copy of this License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you may -at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of it, thus -forming a work based on the Program, and copy and distribute such modifications -or work under the terms of Section 1 above, provided that you also meet all of -these conditions: - - a) You must cause the modified files to carry prominent notices stating - that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in whole or - in part contains or is derived from the Program or any part thereof, to be - licensed as a whole at no charge to all third parties under the terms of - this License. - - c) If the modified program normally reads commands interactively when run, - you must cause it, when started running for such interactive use in the - most ordinary way, to print or display an announcement including an - appropriate copyright notice and a notice that there is no warranty (or - else, saying that you provide a warranty) and that users may redistribute - the program under these conditions, and telling the user how to view a copy - of this License. (Exception: if the Program itself is interactive but does - not normally print such an announcement, your work based on the Program is - not required to print an announcement.) - -These requirements apply to the modified work as a whole. If identifiable -sections of that work are not derived from the Program, and can be reasonably -considered independent and separate works in themselves, then this License, and -its terms, do not apply to those sections when you distribute them as separate -works. But when you distribute the same sections as part of a whole which is a -work based on the Program, the distribution of the whole must be on the terms -of this License, whose permissions for other licensees extend to the entire -whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your -rights to work written entirely by you; rather, the intent is to exercise the -right to control the distribution of derivative or collective works based on -the Program. - -In addition, mere aggregation of another work not based on the Program with the -Program (or with a work based on the Program) on a volume of a storage or -distribution medium does not bring the other work under the scope of this -License. - -3. You may copy and distribute the Program (or a work based on it, under -Section 2) in object code or executable form under the terms of Sections 1 and -2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable source - code, which must be distributed under the terms of Sections 1 and 2 above - on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three years, to - give any third party, for a charge no more than your cost of physically - performing source distribution, a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of Sections 1 - and 2 above on a medium customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer to - distribute corresponding source code. (This alternative is allowed only - for noncommercial distribution and only if you received the program in - object code or executable form with such an offer, in accord with - Subsection b above.) - -The source code for a work means the preferred form of the work for making -modifications to it. For an executable work, complete source code means all -the source code for all modules it contains, plus any associated interface -definition files, plus the scripts used to control compilation and installation -of the executable. However, as a special exception, the source code -distributed need not include anything that is normally distributed (in either -source or binary form) with the major components (compiler, kernel, and so on) -of the operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the source -code from the same place counts as distribution of the source code, even though -third parties are not compelled to copy the source along with the object code. - -4. You may not copy, modify, sublicense, or distribute the Program except as -expressly provided under this License. Any attempt otherwise to copy, modify, -sublicense or distribute the Program is void, and will automatically terminate -your rights under this License. However, parties who have received copies, or -rights, from you under this License will not have their licenses terminated so -long as such parties remain in full compliance. - -5. You are not required to accept this License, since you have not signed it. -However, nothing else grants you permission to modify or distribute the Program -or its derivative works. These actions are prohibited by law if you do not -accept this License. Therefore, by modifying or distributing the Program (or -any work based on the Program), you indicate your acceptance of this License to -do so, and all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the Program), -the recipient automatically receives a license from the original licensor to -copy, distribute or modify the Program subject to these terms and conditions. -You may not impose any further restrictions on the recipients' exercise of the -rights granted herein. You are not responsible for enforcing compliance by -third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), conditions -are imposed on you (whether by court order, agreement or otherwise) that -contradict the conditions of this License, they do not excuse you from the -conditions of this License. If you cannot distribute so as to satisfy -simultaneously your obligations under this License and any other pertinent -obligations, then as a consequence you may not distribute the Program at all. -For example, if a patent license would not permit royalty-free redistribution -of the Program by all those who receive copies directly or indirectly through -you, then the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply and -the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or -other property right claims or to contest validity of any such claims; this -section has the sole purpose of protecting the integrity of the free software -distribution system, which is implemented by public license practices. Many -people have made generous contributions to the wide range of software -distributed through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing to -distribute software through any other system and a licensee cannot impose that -choice. - -This section is intended to make thoroughly clear what is believed to be a -consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in certain -countries either by patents or by copyrighted interfaces, the original -copyright holder who places the Program under this License may add an explicit -geographical distribution limitation excluding those countries, so that -distribution is permitted only in or among countries not thus excluded. In -such case, this License incorporates the limitation as if written in the body -of this License. - -9. The Free Software Foundation may publish revised and/or new versions of the -General Public License from time to time. Such new versions will be similar in -spirit to the present version, but may differ in detail to address new problems -or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any later -version", you have the option of following the terms and conditions either of -that version or of any later version published by the Free Software Foundation. -If the Program does not specify a version number of this License, you may -choose any version ever published by the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free programs -whose distribution conditions are different, write to the author to ask for -permission. For software which is copyrighted by the Free Software Foundation, -write to the Free Software Foundation; we sometimes make exceptions for this. -Our decision will be guided by the two goals of preserving the free status of -all derivatives of our free software and of promoting the sharing and reuse of -software generally. - -NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR -THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE -STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE -PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, -YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL -ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE -PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR -INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA -BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER -OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Programs - -If you develop a new program, and you want it to be of the greatest possible -use to the public, the best way to achieve this is to make it free software -which everyone can redistribute and change under these terms. - -To do so, attach the following notices to the program. It is safest to attach -them to the start of each source file to most effectively convey the exclusion -of warranty; and each file should have at least the "copyright" line and a -pointer to where the full notice is found. - - One line to give the program's name and a brief idea of what it does. - - Copyright (C) - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this when it -starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author Gnomovision comes - with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free - software, and you are welcome to redistribute it under certain conditions; - type 'show c' for details. - -The hypothetical commands 'show w' and 'show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may be -called something other than 'show w' and 'show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your school, -if any, to sign a "copyright disclaimer" for the program, if necessary. Here -is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - 'Gnomovision' (which makes passes at compilers) written by James Hacker. - - signature of Ty Coon, 1 April 1989 - - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General Public -License instead of this License. - - -"CLASSPATH" EXCEPTION TO THE GPL - -Certain source files distributed by Oracle America and/or its affiliates are -subject to the following clarification and special exception to the GPL, but -only where Oracle has expressly included in the particular source file's header -the words "Oracle designates this particular file as subject to the "Classpath" -exception as provided by Oracle in the LICENSE file that accompanied this code." - - Linking this library statically or dynamically with other modules is making - a combined work based on this library. Thus, the terms and conditions of - the GNU General Public License cover the whole combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent modules, - and to copy and distribute the resulting executable under terms of your - choice, provided that you also meet, for each linked independent module, - the terms and conditions of the license of that module. An independent - module is a module which is not derived from or based on this library. If - you modify this library, you may extend this exception to your version of - the library, but you are not obligated to do so. If you do not wish to do - so, delete this exception statement from your version. diff -Nru pycharm-2018.3.5/jre64/release pycharm-2019.1/jre64/release --- pycharm-2018.3.5/jre64/release 2019-01-29 16:01:04.000000000 +0000 +++ pycharm-2019.1/jre64/release 2019-03-19 06:17:21.000000000 +0000 @@ -1,5 +1,6 @@ -JAVA_VERSION="1.8.0_152" +JAVA_VERSION="11.0.2" +MODULES="java.base java.compiler java.datatransfer java.xml java.prefs java.desktop java.instrument java.logging java.management java.security.sasl java.naming java.rmi java.management.rmi java.net.http java.scripting java.security.jgss java.transaction.xa java.sql java.sql.rowset java.xml.crypto java.se java.smartcardio javafx.base javafx.graphics javafx.controls javafx.fxml javafx.media javafx.swing jdk.jsobject jdk.xml.dom javafx.web jdk.accessibility jdk.internal.vm.ci jdk.management jdk.unsupported jdk.internal.vm.compiler jdk.aot jdk.internal.jvmstat jdk.attach jdk.charsets jdk.compiler jdk.crypto.ec jdk.crypto.cryptoki jdk.dynalink jdk.httpserver jdk.internal.ed jdk.internal.le jdk.internal.vm.compiler.management jdk.jdwp.agent jdk.jdi jdk.jfr jdk.localedata jdk.management.agent jdk.management.jfr jdk.naming.dns jdk.naming.rmi jdk.net jdk.pack jdk.scripting.nashorn jdk.scripting.nashorn.shell jdk.sctp jdk.security.auth jdk.security.jgss jdk.zipfs" +IMPLEMENTOR="N/A" +OS_ARCH="x86_64" OS_NAME="Linux" -OS_VERSION="2.6" -OS_ARCH="amd64" SOURCE="" diff -Nru pycharm-2018.3.5/jre64/THIRD_PARTY_README pycharm-2019.1/jre64/THIRD_PARTY_README --- pycharm-2018.3.5/jre64/THIRD_PARTY_README 2019-01-29 16:01:04.000000000 +0000 +++ pycharm-2019.1/jre64/THIRD_PARTY_README 1970-01-01 00:00:00.000000000 +0000 @@ -1,3574 +0,0 @@ -DO NOT TRANSLATE OR LOCALIZE. ------------------------------ - -%% This notice is provided with respect to ASM Bytecode Manipulation -Framework v5.0.3, which may be included with JRE 8, and JDK 8, and -OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (c) 2000-2011 France Télécom -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holders nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -THE POSSIBILITY OF SUCH DAMAGE. - ---- end of LICENSE --- - --------------------------------------------------------------------------------- - -%% This notice is provided with respect to BSDiff v4.3, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright 2003-2005 Colin Percival -All rights reserved - -Redistribution and use in source and binary forms, with or without -modification, are permitted providing that the following conditions -are met: -1. Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to CodeViewer 1.0, which may be -included with JDK 8. - ---- begin of LICENSE --- - -Copyright 1999 by CoolServlets.com. - -Any errors or suggested improvements to this class can be reported as -instructed on CoolServlets.com. We hope you enjoy this program... your -comments will encourage further development! This software is distributed -under the terms of the BSD License. Redistribution and use in source and -binary forms, with or without modification, are permitted provided that the -following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -Neither name of CoolServlets.com nor the names of its contributors may be -used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY COOLSERVLETS.COM AND CONTRIBUTORS ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." - - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Cryptix AES 3.2.0, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Cryptix General License - -Copyright (c) 1995-2005 The Cryptix Foundation Limited. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - 1. Redistributions of source code must retain the copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND -CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to CUP Parser Generator for -Java 0.10k, which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, provided -that the above copyright notice appear in all copies and that both the -copyright notice and this permission notice and warranty disclaimer appear in -supporting documentation, and that the names of the authors or their -employers not be used in advertising or publicity pertaining to distribution of -the software without specific, written prior permission. - -The authors and their employers disclaim all warranties with regard to -this software, including all implied warranties of merchantability and fitness. -In no event shall the authors or their employers be liable for any special, -indirect or consequential damages or any damages whatsoever resulting from -loss of use, data or profits, whether in an action of contract, negligence or -other tortious action, arising out of or in connection with the use or -performance of this software. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Document Object Model (DOM) Level 2 -& 3, which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -W3C SOFTWARE NOTICE AND LICENSE - -http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 - -This work (and included software, documentation such as READMEs, or other -related items) is being provided by the copyright holders under the following -license. By obtaining, using and/or copying this work, you (the licensee) -agree that you have read, understood, and will comply with the following terms -and conditions. - -Permission to copy, modify, and distribute this software and its -documentation, with or without modification, for any purpose and without fee -or royalty is hereby granted, provided that you include the following on ALL -copies of the software and documentation or portions thereof, including -modifications: - - 1.The full text of this NOTICE in a location viewable to users of the - redistributed or derivative work. - - 2.Any pre-existing intellectual property disclaimers, notices, or terms and - conditions. If none exist, the W3C Software Short Notice should be included - (hypertext is preferred, text is permitted) within the body of any - redistributed or derivative code. - - 3.Notice of any changes or modifications to the files, including the date - changes were made. (We recommend you provide URIs to the location from - which the code is derived.) - -THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS -MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT -LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR -PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY -THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. - -COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL -OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR -DOCUMENTATION. The name and trademarks of copyright holders may NOT be used -in advertising or publicity pertaining to the software without specific, -written prior permission. Title to copyright in this software and any -associated documentation will at all times remain with copyright holders. - -____________________________________ - -This formulation of W3C's notice and license became active on December 31 -2002. This version removes the copyright ownership notice such that this -license can be used with materials other than those owned by the W3C, reflects -that ERCIM is now a host of the W3C, includes references to this specific -dated version of the license, and removes the ambiguous grant of "use". -Otherwise, this version is the same as the previous version and is written so -as to preserve the Free Software Foundation's assessment of GPL compatibility -and OSI's certification under the Open Source Definition. Please see our -Copyright FAQ for common questions about using materials from our site, -including specific terms and conditions for packages like libwww, Amaya, and -Jigsaw. Other questions about this notice can be directed to -site-policy@w3.org. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Dynalink v0.5, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (c) 2009-2013, Attila Szegedi - -All rights reserved.Redistribution and use in source and binary forms, with or -without modification, are permitted provided that the following conditions are -met:* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. * Redistributions in -binary form must reproduce the above copyright notice, this list of -conditions and the following disclaimer in the documentation and/or other -materials provided with the distribution. * Neither the name of Attila -Szegedi nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Elliptic Curve Cryptography, which -may be included with JRE 8, JDK 8, and OpenJDK 8. - -You are receiving a copy of the Elliptic Curve Cryptography library in source -form with the JDK 8 and OpenJDK 8 source distributions, and as object code in -the JRE 8 & JDK 8 runtimes. - -In the case of the JRE 8 & JDK 8 runtimes, the terms of the Oracle license do -NOT apply to the Elliptic Curve Cryptography library; it is licensed under the -following license, separately from Oracle's JDK & JRE. If you do not wish to -install the Elliptic Curve Cryptography library, you may delete the library -named libsunec.so (on Solaris and Linux systems) or sunec.dll (on Windows -systems) from the JRE bin directory reserved for native libraries. - - ---- begin of LICENSE --- - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to ECMAScript Language -Specification ECMA-262 Edition 5.1 which may be included with -JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright notice -Copyright © 2011 Ecma International -Ecma International -Rue du Rhone 114 -CH-1204 Geneva -Tel: +41 22 849 6000 -Fax: +41 22 849 6001 -Web: http://www.ecma-international.org - -This document and possible translations of it may be copied and furnished to -others, and derivative works that comment on or otherwise explain it or assist -in its implementation may be prepared, copied, published, and distributed, in -whole or in part, without restriction of any kind, provided that the above -copyright notice and this section are included on all such copies and derivative -works. However, this document itself may not be modified in any way, including -by removing the copyright notice or references to Ecma International, except as -needed for the purpose of developing any document or deliverable produced by -Ecma International (in which case the rules applied to copyrights must be -followed) or as required to translate it into languages other than English. The -limited permissions granted above are perpetual and will not be revoked by Ecma -International or its successors or assigns. This document and the information -contained herein is provided on an "AS IS" basis and ECMA INTERNATIONAL -DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY -WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP -RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR -PURPOSE." Software License - -All Software contained in this document ("Software)" is protected by copyright -and is being made available under the "BSD License", included below. This -Software may be subject to third party rights (rights from parties other than -Ecma International), including patent rights, and no licenses under such third -party rights are granted under this license even if the third party concerned is -a member of Ecma International. SEE THE ECMA CODE OF CONDUCT IN PATENT MATTERS -AVAILABLE AT http://www.ecma-international.org/memento/codeofconduct.htm FOR -INFORMATION REGARDING THE LICENSING OF PATENT CLAIMS THAT ARE REQUIRED TO -IMPLEMENT ECMA INTERNATIONAL STANDARDS*. Redistribution and use in source and -binary forms, with or without modification, are permitted provided that the -following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. - -3. Neither the name of the authors nor Ecma International may be used to endorse -or promote products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT -SHALL ECMA INTERNATIONAL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY -OF SUCH DAMAGE. ---- end of LICENSE --- - -%% This notice is provided with respect to Dynalink library which is included -with the Nashorn technology. - ---- begin of LICENSE --- -Copyright (c) 2009-2013, Attila Szegedi - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -* Neither the name of the copyright holder nor the names of - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- end of LICENSE --- - -%% This notice is provided with respect to Joni library which is included -with the Nashorn technology. - ---- begin of LICENSE --- -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to FontConfig 2.5, which may be -included with JRE 8, JDK 8, and OpenJDK 8 source distributions on -Linux and Solaris. - ---- begin of LICENSE --- - -Copyright © 2001,2003 Keith Packard - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that the -above copyright notice appear in all copies and that both that copyright -notice and this permission notice appear in supporting documentation, and that -the name of Keith Packard not be used in advertising or publicity pertaining -to distribution of the software without specific, written prior permission. -Keith Packard makes no representations about the suitability of this software -for any purpose. It is provided "as is" without express or implied warranty. - -KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL KEITH -PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY -DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to IAIK PKCS#11 Wrapper, -which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -IAIK PKCS#11 Wrapper License - -Copyright (c) 2002 Graz University of Technology. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. The end-user documentation included with the redistribution, if any, must - include the following acknowledgment: - - "This product includes software developed by IAIK of Graz University of - Technology." - - Alternately, this acknowledgment may appear in the software itself, if and - wherever such third-party acknowledgments normally appear. - -4. The names "Graz University of Technology" and "IAIK of Graz University of - Technology" must not be used to endorse or promote products derived from this - software without prior written permission. - -5. Products derived from this software may not be called "IAIK PKCS Wrapper", - nor may "IAIK" appear in their name, without prior written permission of - Graz University of Technology. - -THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -LICENSOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to ICU4C 4.0.1 and ICU4J 4.4, which -may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (c) 1995-2010 International Business Machines Corporation and others - -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, and/or sell copies of the -Software, and to permit persons to whom the Software is furnished to do so, -provided that the above copyright notice(s) and this permission notice appear -in all copies of the Software and that both the above copyright notice(s) and -this permission notice appear in supporting documentation. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN -NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE -LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY -DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -Except as contained in this notice, the name of a copyright holder shall not -be used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization of the copyright holder. -All trademarks and registered trademarks mentioned herein are the property of -their respective owners. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to IJG JPEG 6b, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -This software is copyright (C) 1991-1998, Thomas G. Lane. -All Rights Reserved except as specified below. - -Permission is hereby granted to use, copy, modify, and distribute this -software (or portions thereof) for any purpose, without fee, subject to these -conditions: -(1) If any part of the source code for this software is distributed, then this -README file must be included, with this copyright and no-warranty notice -unaltered; and any additions, deletions, or changes to the original files -must be clearly indicated in accompanying documentation. -(2) If only executable code is distributed, then the accompanying -documentation must state that "this software is based in part on the work of -the Independent JPEG Group". -(3) Permission for use of this software is granted only if the user accepts -full responsibility for any undesirable consequences; the authors accept -NO LIABILITY for damages of any kind. - -These conditions apply to any software derived from or based on the IJG code, -not just to the unmodified library. If you use our work, you ought to -acknowledge us. - -Permission is NOT granted for the use of any IJG author's name or company name -in advertising or publicity relating to this software or products derived from -it. This software may be referred to only as "the Independent JPEG Group's -software". - -We specifically permit and encourage the use of this software as the basis of -commercial products, provided that all warranty or liability claims are -assumed by the product vendor. - ---- end of LICENSE --- - --------------------------------------------------------------------------------- - -%% This notice is provided with respect to Joni v1.1.9, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to JOpt-Simple v3.0, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - - Copyright (c) 2004-2009 Paul R. Holser, Jr. - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ---- end of LICENSE --- - --------------------------------------------------------------------------------- - -%% This notice is provided with respect to Kerberos functionality, which -which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - - (C) Copyright IBM Corp. 1999 All Rights Reserved. - Copyright 1997 The Open Group Research Institute. All rights reserved. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Kerberos functionality from -FundsXpress, INC., which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - - Copyright (C) 1998 by the FundsXpress, INC. - - All rights reserved. - - Export of this software from the United States of America may require - a specific license from the United States Government. It is the - responsibility of any person or organization contemplating export to - obtain such a license before exporting. - - WITHIN THAT CONSTRAINT, permission to use, copy, modify, and - distribute this software and its documentation for any purpose and - without fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright notice and - this permission notice appear in supporting documentation, and that - the name of FundsXpress. not be used in advertising or publicity pertaining - to distribution of the software without specific, written prior - permission. FundsXpress makes no representations about the suitability of - this software for any purpose. It is provided "as is" without express - or implied warranty. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Kronos OpenGL headers, which may be -included with JDK 8 and OpenJDK 8 source distributions. - ---- begin of LICENSE --- - - Copyright (c) 2007 The Khronos Group Inc. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and/or associated documentation files (the "Materials"), to - deal in the Materials without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Materials, and to permit persons to whom the Materials are - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Materials. - - THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE - MATERIALS. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% Portions Copyright Eastman Kodak Company 1992 - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to libpng 1.6.16, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -This copy of the libpng notices is provided for your convenience. In case of -any discrepancy between this copy and the notices in the file png.h that is -included in the libpng distribution, the latter shall prevail. - -COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: - -If you modify libpng you may insert additional notices immediately following -this sentence. - -This code is released under the libpng license. - -libpng versions 1.2.6, August 15, 2004, through 1.6.16, December 22, 2014, are -Copyright (c) 2004, 2006-2014 Glenn Randers-Pehrson, and are -distributed according to the same disclaimer and license as libpng-1.2.5 -with the following individual added to the list of Contributing Authors - - Cosmin Truta - -libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are -Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are -distributed according to the same disclaimer and license as libpng-1.0.6 -with the following individuals added to the list of Contributing Authors - - Simon-Pierre Cadieux - Eric S. Raymond - Gilles Vollant - -and with the following additions to the disclaimer: - - There is no warranty against interference with your enjoyment of the - library or against infringement. There is no warranty that our - efforts or the library will fulfill any of your particular purposes - or needs. This library is provided with all faults, and the entire - risk of satisfactory quality, performance, accuracy, and effort is with - the user. - -libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are -Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are -distributed according to the same disclaimer and license as libpng-0.96, -with the following individuals added to the list of Contributing Authors: - - Tom Lane - Glenn Randers-Pehrson - Willem van Schaik - -libpng versions 0.89, June 1996, through 0.96, May 1997, are -Copyright (c) 1996, 1997 Andreas Dilger -Distributed according to the same disclaimer and license as libpng-0.88, -with the following individuals added to the list of Contributing Authors: - - John Bowler - Kevin Bracey - Sam Bushell - Magnus Holmgren - Greg Roelofs - Tom Tanner - -libpng versions 0.5, May 1995, through 0.88, January 1996, are -Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - -For the purposes of this copyright and license, "Contributing Authors" -is defined as the following set of individuals: - - Andreas Dilger - Dave Martindale - Guy Eric Schalnat - Paul Schmidt - Tim Wegner - -The PNG Reference Library is supplied "AS IS". The Contributing Authors -and Group 42, Inc. disclaim all warranties, expressed or implied, -including, without limitation, the warranties of merchantability and of -fitness for any purpose. The Contributing Authors and Group 42, Inc. -assume no liability for direct, indirect, incidental, special, exemplary, -or consequential damages, which may result from the use of the PNG -Reference Library, even if advised of the possibility of such damage. - -Permission is hereby granted to use, copy, modify, and distribute this -source code, or portions hereof, for any purpose, without fee, subject -to the following restrictions: - -1. The origin of this source code must not be misrepresented. - -2. Altered versions must be plainly marked as such and must not - be misrepresented as being the original source. - -3. This Copyright notice may not be removed or altered from any - source or altered source distribution. - -The Contributing Authors and Group 42, Inc. specifically permit, without -fee, and encourage the use of this source code as a component to -supporting the PNG file format in commercial products. If you use this -source code in a product, acknowledgment is not required but would be -appreciated. - - -A "png_get_copyright" function is available, for convenient use in "about" -boxes and the like: - - printf("%s",png_get_copyright(NULL)); - -Also, the PNG logo (in PNG format, of course) is supplied in the -files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). - -Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a -certification mark of the Open Source Initiative. - -Glenn Randers-Pehrson -glennrp at users.sourceforge.net -December 22, 2014 - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to GIFLIB 5.1.1 & libungif 4.1.3, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Little CMS 2.7, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Little CMS -Copyright (c) 1998-2015 Marti Maria Saguer - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% Lucida is a registered trademark or trademark of Bigelow & Holmes in the -U.S. and other countries. - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Mesa 3D Graphics Library v4.1, -which may be included with JRE 8, JDK 8, and OpenJDK 8 source distributions. - ---- begin of LICENSE --- - - Mesa 3-D graphics library - Version: 4.1 - - Copyright (C) 1999-2002 Brian Paul All Rights Reserved. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Mozilla Network Security -Services (NSS), which is supplied with the JDK test suite in the OpenJDK -source code repository. It is licensed under Mozilla Public License (MPL), -version 2.0. - -The NSS libraries are supplied in executable form, built from unmodified -NSS source code labeled with the "NSS_3_16_RTM" HG tag. - -The NSS source code is available in the OpenJDK source code repository at: - jdk/test/sun/security/pkcs11/nss/src - -The NSS libraries are available in the OpenJDK source code repository at: - jdk/test/sun/security/pkcs11/nss/lib - ---- begin of LICENSE --- - -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to PC/SC Lite for Suse Linux v.1.1.1, -which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. - ---- begin of LICENSE --- - -Copyright (c) 1999-2004 David Corcoran -Copyright (c) 1999-2004 Ludovic Rousseau -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed by: - David Corcoran - http://www.linuxnet.com (MUSCLE) -4. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -Changes to this license can be made only by the copyright author with -explicit written consent. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to PorterStemmer v4, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -See: http://tartarus.org/~martin/PorterStemmer - -The software is completely free for any purpose, unless notes at the head of -the program text indicates otherwise (which is rare). In any case, the notes -about licensing are never more restrictive than the BSD License. - -In every case where the software is not written by me (Martin Porter), this -licensing arrangement has been endorsed by the contributor, and it is -therefore unnecessary to ask the contributor again to confirm it. - -I have not asked any contributors (or their employers, if they have them) for -proofs that they have the right to distribute their software in this way. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Relax NG Object/Parser v.20050510, -which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (c) Kohsuke Kawaguchi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: The above copyright -notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to RelaxNGCC v1.12, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (c) 2000-2003 Daisuke Okajima and Kohsuke Kawaguchi. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. The end-user documentation included with the redistribution, if any, must - include the following acknowledgment: - - "This product includes software developed by Daisuke Okajima - and Kohsuke Kawaguchi (http://relaxngcc.sf.net/)." - -Alternately, this acknowledgment may appear in the software itself, if and -wherever such third-party acknowledgments normally appear. - -4. The names of the copyright holders must not be used to endorse or promote - products derived from this software without prior written permission. For - written permission, please contact the copyright holders. - -5. Products derived from this software may not be called "RELAXNGCC", nor may - "RELAXNGCC" appear in their name, without prior written permission of the - copyright holders. - -THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL THE APACHE -SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to SAX 2.0.1, which may be included -with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - - SAX is free! - - In fact, it's not possible to own a license to SAX, since it's been placed in - the public domain. - - No Warranty - - Because SAX is released to the public domain, there is no warranty for the - design or for the software implementation, to the extent permitted by - applicable law. Except when otherwise stated in writing the copyright holders - and/or other parties provide SAX "as is" without warranty of any kind, either - expressed or implied, including, but not limited to, the implied warranties - of merchantability and fitness for a particular purpose. The entire risk as - to the quality and performance of SAX is with you. Should SAX prove - defective, you assume the cost of all necessary servicing, repair or - correction. - - In no event unless required by applicable law or agreed to in writing will - any copyright holder, or any other party who may modify and/or redistribute - SAX, be liable to you for damages, including any general, special, incidental - or consequential damages arising out of the use or inability to use SAX - (including but not limited to loss of data or data being rendered inaccurate - or losses sustained by you or third parties or a failure of the SAX to - operate with any other programs), even if such holder or other party has been - advised of the possibility of such damages. - - Copyright Disclaimers - - This page includes statements to that effect by David Megginson, who would - have been able to claim copyright for the original work. SAX 1.0 - - Version 1.0 of the Simple API for XML (SAX), created collectively by the - membership of the XML-DEV mailing list, is hereby released into the public - domain. - - No one owns SAX: you may use it freely in both commercial and non-commercial - applications, bundle it with your software distribution, include it on a - CD-ROM, list the source code in a book, mirror the documentation at your own - web site, or use it in any other way you see fit. - - David Megginson, sax@megginson.com - 1998-05-11 - - SAX 2.0 - - I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and - release all of the SAX 2.0 source code, compiled code, and documentation - contained in this distribution into the Public Domain. SAX comes with NO - WARRANTY or guarantee of fitness for any purpose. - - David Megginson, david@megginson.com - 2000-05-05 - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to SoftFloat version 2b, which may be -included with JRE 8, JDK 8, and OpenJDK 8 on Linux/ARM. - ---- begin of LICENSE --- - -Use of any of this software is governed by the terms of the license below: - -SoftFloat was written by me, John R. Hauser. This work was made possible in -part by the International Computer Science Institute, located at Suite 600, -1947 Center Street, Berkeley, California 94704. Funding was partially -provided by the National Science Foundation under grant MIP-9311980. The -original version of this code was written as part of a project to build -a fixed-point vector processor in collaboration with the University of -California at Berkeley, overseen by Profs. Nelson Morgan and John Wawrzynek. - -THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort -has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT -TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO -PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL -LOSSES, COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO -FURTHERMORE EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER -SCIENCE INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, -COSTS, OR OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE -SOFTWARE. - -Derivative works are acceptable, even for commercial purposes, provided -that the minimal documentation requirements stated in the source code are -satisfied. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Sparkle 1.5, -which may be included with JRE 8 on Mac OS X. - ---- begin of LICENSE --- - -Copyright (c) 2012 Sparkle.org and Andy Matuschak - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% Portions licensed from Taligent, Inc. - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Thai Dictionary, which may be -included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Copyright (C) 1982 The Royal Institute, Thai Royal Government. - -Copyright (C) 1998 National Electronics and Computer Technology Center, -National Science and Technology Development Agency, -Ministry of Science Technology and Environment, -Thai Royal Government. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Unicode 6.2.0 & CLDR 21.0.1 -which may be included with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - -Unicode Terms of Use - -For the general privacy policy governing access to this site, see the Unicode -Privacy Policy. For trademark usage, see the Unicode® Consortium Name and -Trademark Usage Policy. - -A. Unicode Copyright. - 1. Copyright © 1991-2013 Unicode, Inc. All rights reserved. - - 2. Certain documents and files on this website contain a legend indicating - that "Modification is permitted." Any person is hereby authorized, - without fee, to modify such documents and files to create derivative - works conforming to the Unicode® Standard, subject to Terms and - Conditions herein. - - 3. Any person is hereby authorized, without fee, to view, use, reproduce, - and distribute all documents and files solely for informational - purposes in the creation of products supporting the Unicode Standard, - subject to the Terms and Conditions herein. - - 4. Further specifications of rights and restrictions pertaining to the use - of the particular set of data files known as the "Unicode Character - Database" can be found in Exhibit 1. - - 5. Each version of the Unicode Standard has further specifications of - rights and restrictions of use. For the book editions (Unicode 5.0 and - earlier), these are found on the back of the title page. The online - code charts carry specific restrictions. All other files, including - online documentation of the core specification for Unicode 6.0 and - later, are covered under these general Terms of Use. - - 6. No license is granted to "mirror" the Unicode website where a fee is - charged for access to the "mirror" site. - - 7. Modification is not permitted with respect to this document. All copies - of this document must be verbatim. - -B. Restricted Rights Legend. Any technical data or software which is licensed - to the United States of America, its agencies and/or instrumentalities - under this Agreement is commercial technical data or commercial computer - software developed exclusively at private expense as defined in FAR 2.101, - or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, - duplication, or disclosure by the Government is subject to restrictions as - set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov - 1995) and this Agreement. For Software, in accordance with FAR 12-212 or - DFARS 227-7202, as applicable, use, duplication or disclosure by the - Government is subject to the restrictions set forth in this Agreement. - -C. Warranties and Disclaimers. - 1. This publication and/or website may include technical or typographical - errors or other inaccuracies . Changes are periodically added to the - information herein; these changes will be incorporated in new editions - of the publication and/or website. Unicode may make improvements and/or - changes in the product(s) and/or program(s) described in this - publication and/or website at any time. - - 2. If this file has been purchased on magnetic or optical media from - Unicode, Inc. the sole and exclusive remedy for any claim will be - exchange of the defective media within ninety (90) days of original - purchase. - - 3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR SOFTWARE IS - PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, - OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. - UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR - OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH - ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. - -D. Waiver of Damages. In no event shall Unicode or its licensors be liable for - any special, incidental, indirect or consequential damages of any kind, or - any damages whatsoever, whether or not Unicode was advised of the - possibility of the damage, including, without limitation, those resulting - from the following: loss of use, data or profits, in connection with the - use, modification or distribution of this information or its derivatives. - -E.Trademarks & Logos. - 1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, - Inc. “The Unicode Consortium†and “Unicode, Inc.†are trade names of - Unicode, Inc. Use of the information and materials found on this - website indicates your acknowledgement of Unicode, Inc.’s exclusive - worldwide rights in the Unicode Word Mark, the Unicode Logo, and the - Unicode trade names. - - 2. The Unicode Consortium Name and Trademark Usage Policy (“Trademark - Policyâ€) are incorporated herein by reference and you agree to abide by - the provisions of the Trademark Policy, which may be changed from time - to time in the sole discretion of Unicode, Inc. - - 3. All third party trademarks referenced herein are the property of their - respective owners. - -Miscellaneous. - 1. Jurisdiction and Venue. This server is operated from a location in the - State of California, United States of America. Unicode makes no - representation that the materials are appropriate for use in other - locations. If you access this server from other locations, you are - responsible for compliance with local laws. This Agreement, all use of - this site and any claims and damages resulting from use of this site are - governed solely by the laws of the State of California without regard to - any principles which would apply the laws of a different jurisdiction. - The user agrees that any disputes regarding this site shall be resolved - solely in the courts located in Santa Clara County, California. The user - agrees said courts have personal jurisdiction and agree to waive any - right to transfer the dispute to any other forum. - - 2. Modification by Unicode. Unicode shall have the right to modify this - Agreement at any time by posting it to this site. The user may not - assign any part of this Agreement without Unicode’s prior written - consent. - - 3. Taxes. The user agrees to pay any taxes arising from access to this - website or use of the information herein, except for those based on - Unicode’s net income. - - 4. Severability. If any provision of this Agreement is declared invalid or - unenforceable, the remaining provisions of this Agreement shall remain - in effect. - - 5. Entire Agreement. This Agreement constitutes the entire agreement - between the parties. - -EXHIBIT 1 -UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE - -Unicode Data Files include all data files under the directories -http://www.unicode.org/Public/, http://www.unicode.org/reports/, and -http://www.unicode.org/cldr/data/. Unicode Data Files do not include PDF -online code charts under the directory http://www.unicode.org/Public/. -Software includes any source code published in the Unicode Standard or under -the directories http://www.unicode.org/Public/, -http://www.unicode.org/reports/, and http://www.unicode.org/cldr/data/. - -NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, -INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA -FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO -BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT -AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR -SOFTWARE. - -COPYRIGHT AND PERMISSION NOTICE - -Copyright © 1991-2012 Unicode, Inc. All rights reserved. Distributed under the -Terms of Use in http://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of the Unicode data files and any associated documentation (the "Data Files") -or Unicode software and any associated documentation (the "Software") to deal -in the Data Files or Software without restriction, including without -limitation the rights to use, copy, modify, merge, publish, distribute, and/or -sell copies of the Data Files or Software, and to permit persons to whom the -Data Files or Software are furnished to do so, provided that (a) the above -copyright notice(s) and this permission notice appear with all copies of the -Data Files or Software, (b) both the above copyright notice(s) and this -permission notice appear in associated documentation, and (c) there is clear -notice in each modified Data File or in the Software as well as in the -documentation associated with the Data File(s) or Software that the data or -software has been modified. - -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD -PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN -THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE -DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder shall not -be used in advertising or otherwise to promote the sale, use or other dealings -in these Data Files or Software without prior written authorization of the -copyright holder. - -Unicode and the Unicode logo are trademarks of Unicode, Inc. in the United -States and other countries. All third party trademarks referenced herein are -the property of their respective owners. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to UPX v3.01, which may be included -with JRE 8 on Windows. - ---- begin of LICENSE --- - -Use of any of this software is governed by the terms of the license below: - - - ooooo ooo ooooooooo. ooooooo ooooo - `888' `8' `888 `Y88. `8888 d8' - 888 8 888 .d88' Y888..8P - 888 8 888ooo88P' `8888' - 888 8 888 .8PY888. - `88. .8' 888 d8' `888b - `YbodP' o888o o888o o88888o - - - The Ultimate Packer for eXecutables - Copyright (c) 1996-2000 Markus Oberhumer & Laszlo Molnar - http://wildsau.idv.uni-linz.ac.at/mfx/upx.html - http://www.nexus.hu/upx - http://upx.tsx.org - - -PLEASE CAREFULLY READ THIS LICENSE AGREEMENT, ESPECIALLY IF YOU PLAN -TO MODIFY THE UPX SOURCE CODE OR USE A MODIFIED UPX VERSION. - - -ABSTRACT -======== - - UPX and UCL are copyrighted software distributed under the terms - of the GNU General Public License (hereinafter the "GPL"). - - The stub which is imbedded in each UPX compressed program is part - of UPX and UCL, and contains code that is under our copyright. The - terms of the GNU General Public License still apply as compressing - a program is a special form of linking with our stub. - - As a special exception we grant the free usage of UPX for all - executables, including commercial programs. - See below for details and restrictions. - - -COPYRIGHT -========= - - UPX and UCL are copyrighted software. All rights remain with the authors. - - UPX is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer - UPX is Copyright (C) 1996-2000 Laszlo Molnar - - UCL is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer - - -GNU GENERAL PUBLIC LICENSE -========================== - - UPX and the UCL library are free software; you can redistribute them - and/or modify them under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. - - UPX and UCL are distributed in the hope that they will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - - -SPECIAL EXCEPTION FOR COMPRESSED EXECUTABLES -============================================ - - The stub which is imbedded in each UPX compressed program is part - of UPX and UCL, and contains code that is under our copyright. The - terms of the GNU General Public License still apply as compressing - a program is a special form of linking with our stub. - - Hereby Markus F.X.J. Oberhumer and Laszlo Molnar grant you special - permission to freely use and distribute all UPX compressed programs - (including commercial ones), subject to the following restrictions: - - 1. You must compress your program with a completely unmodified UPX - version; either with our precompiled version, or (at your option) - with a self compiled version of the unmodified UPX sources as - distributed by us. - 2. This also implies that the UPX stub must be completely unmodfied, i.e. - the stub imbedded in your compressed program must be byte-identical - to the stub that is produced by the official unmodified UPX version. - 3. The decompressor and any other code from the stub must exclusively get - used by the unmodified UPX stub for decompressing your program at - program startup. No portion of the stub may get read, copied, - called or otherwise get used or accessed by your program. - - -ANNOTATIONS -=========== - - - You can use a modified UPX version or modified UPX stub only for - programs that are compatible with the GNU General Public License. - - - We grant you special permission to freely use and distribute all UPX - compressed programs. But any modification of the UPX stub (such as, - but not limited to, removing our copyright string or making your - program non-decompressible) will immediately revoke your right to - use and distribute a UPX compressed program. - - - UPX is not a software protection tool; by requiring that you use - the unmodified UPX version for your proprietary programs we - make sure that any user can decompress your program. This protects - both you and your users as nobody can hide malicious code - - any program that cannot be decompressed is highly suspicious - by definition. - - - You can integrate all or part of UPX and UCL into projects that - are compatible with the GNU GPL, but obviously you cannot grant - any special exceptions beyond the GPL for our code in your project. - - - We want to actively support manufacturers of virus scanners and - similar security software. Please contact us if you would like to - incorporate parts of UPX or UCL into such a product. - - - -Markus F.X.J. Oberhumer Laszlo Molnar -markus.oberhumer@jk.uni-linz.ac.at ml1050@cdata.tvnet.hu - -Linz, Austria, 25 Feb 2000 - -Additional License(s) - -The UPX license file is at http://upx.sourceforge.net/upx-license.html. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to Xfree86-VidMode Extension 1.0, -which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. - ---- begin of LICENSE --- - -Version 1.1 of XFree86 ProjectLicence. - -Copyright (C) 1994-2004 The XFree86 Project, Inc. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicence, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so,subject to the following conditions: - - 1. Redistributions of source code must retain the above copyright - notice,this list of conditions, and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution, and in the same place - and form as other copyright, license and disclaimer information. - - 3. The end-user documentation included with the redistribution, if any,must - include the following acknowledgment: "This product includes - software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and - its contributors", in the same place and form as other third-party - acknowledgments. Alternately, this acknowledgment may appear in the software - itself, in the same form and location as other such third-party - acknowledgments. - - 4. Except as contained in this notice, the name of The XFree86 Project,Inc - shall not be used in advertising or otherwise to promote the sale, use - or other dealings in this Software without prior written authorization from - The XFree86 Project, Inc. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO - EVENT SHALL THE XFREE86 PROJECT, INC OR ITS CONTRIBUTORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO,PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - DAMAGE. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to X Window System 6.8.2, which may be -included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. - ---- begin of LICENSE --- - - Licenses -The X.Org Foundation March 2004 - -1. Introduction - -The X.org Foundation X Window System distribution is a compilation of code and -documentation from many sources. This document is intended primarily as a -guide to the licenses used in the distribution: you must check each file -and/or package for precise redistribution terms. None-the-less, this summary -may be useful to many users. No software incorporating the XFree86 1.1 license -has been incorporated. - -This document is based on the compilation from XFree86. - -2. XFree86 License - -XFree86 code without an explicit copyright is covered by the following -copyright/license: - -Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the XFree86 Project shall not -be used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from the XFree86 Project. - -3. Other Licenses - -Portions of code are covered by the following licenses/copyrights. See -individual files for the copyright dates. - -3.1. X/MIT Copyrights - -3.1.1. X Consortium - -Copyright (C) X Consortium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X -CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall not be -used in advertising or otherwise to promote the sale, use or other dealings in -this Software without prior written authorization from the X Consortium. - -X Window System is a trademark of X Consortium, Inc. - -3.1.2. The Open Group - -Copyright The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that the -above copyright notice appear in all copies and that both that copyright -notice and this permission notice appear in supporting documentation. - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings in -this Software without prior written authorization from The Open Group. 3.2. -Berkeley-based copyrights: - -o -3.2.1. General - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. 3.2.2. UCB/LBL - -Copyright (c) 1993 The Regents of the University of California. All rights -reserved. - -This software was developed by the Computer Systems Engineering group at -Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to -Berkeley. - -All advertising materials mentioning features or use of this software must -display the following acknowledgement: This product includes software -developed by the University of California, Lawrence Berkeley Laboratory. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: This product includes software - developed by the University of California, Berkeley and its contributors. - - 4. Neither the name of the University nor the names of its contributors may - be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3.2.3. The -NetBSD Foundation, Inc. - -Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved. - -This code is derived from software contributed to The NetBSD Foundation by Ben -Collver - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: This product includes software - developed by the NetBSD Foundation, Inc. and its contributors. - - 4. Neither the name of The NetBSD Foundation nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS ``AS -IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3.2.4. Theodore -Ts'o. - -Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights -reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - and the entire permission notice in its entirety, including the disclaimer - of warranties. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. he name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO -EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. 3.2.5. Theo de Raadt and Damien Miller - -Copyright (c) 1995,1999 Theo de Raadt. All rights reserved. Copyright (c) -2001-2002 Damien Miller. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. 3.2.6. Todd C. Miller - -Copyright (c) 1998 Todd C. Miller - -Permission to use, copy, modify, and distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright -notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 3.2.7. Thomas -Winischhofer - -Copyright (C) 2001-2004 Thomas Winischhofer - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. 3.3. NVIDIA Corp - -Copyright (c) 1996 NVIDIA, Corp. All rights reserved. - -NOTICE TO USER: The source code is copyrighted under U.S. and international -laws. NVIDIA, Corp. of Sunnyvale, California owns the copyright and as design -patents pending on the design and interface of the NV chips. Users and -possessors of this source code are hereby granted a nonexclusive, royalty-free -copyright and design patent license to use this code in individual and -commercial software. - -Any use of this source code must include, in the user documentation and -internal comments to the code, notices to the end user as follows: - -Copyright (c) 1996 NVIDIA, Corp. NVIDIA design patents pending in the U.S. and -foreign countries. - -NVIDIA, CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE -CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED -WARRANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO -THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE -FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY -DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. 3.4. GLX Public -License - -GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License") - -Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby -grants permission to Recipient (defined below), under Recipient's copyrights -in the Original Software (defined below), to use, copy, modify, merge, -publish, distribute, sublicense and/or sell copies of Subject Software -(defined below), and to permit persons to whom the Subject Software is -furnished in accordance with this License to do the same, subject to all of -the following terms and conditions, which Recipient accepts by engaging in any -such use, copying, modifying, merging, publishing, distributing, sublicensing -or selling: - -1. Definitions. - - (a) "Original Software" means source code of computer software code which - is described in Exhibit A as Original Software. - - (b) "Modifications" means any addition to or deletion from the substance - or structure of either the Original Software or any previous - Modifications. When Subject Software is released as a series of files, a - Modification means (i) any addition to or deletion from the contents of a - file containing Original Software or previous Modifications and (ii) any - new file that contains any part of the Original Code or previous - Modifications. - - (c) "Subject Software" means the Original Software or Modifications or the - combination of the Original Software and Modifications, or portions of any - of the foregoing. - - (d) "Recipient" means an individual or a legal entity exercising rights - under, and complying with all of the terms of, this License. For legal - entities, "Recipient" includes any entity which controls, is controlled - by, or is under common control with Recipient. For purposes of this - definition, "control" of an entity means (a) the power, direct or - indirect, to direct or manage such entity, or (b) ownership of fifty - percent (50%) or more of the outstanding shares or beneficial ownership of - such entity. - -2. Redistribution of Source Code Subject to These Terms. Redistributions of -Subject Software in source code form must retain the notice set forth in -Exhibit A, below, in every file. A copy of this License must be included in -any documentation for such Subject Software where the recipients' rights -relating to Subject Software are described. Recipient may distribute the -source code version of Subject Software under a license of Recipient's choice, -which may contain terms different from this License, provided that (i) -Recipient is in compliance with the terms of this License, and (ii) the -license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13 of -this License, which terms may not be modified or superseded by any other terms -of such license. If Recipient distributes the source code version under a -different license Recipient must make it absolutely clear that any terms which -differ from this License are offered by Recipient alone, not by SGI. Recipient -hereby agrees to indemnify SGI for any liability incurred by SGI as a result -of any such terms Recipient offers. - -3. Redistribution in Executable Form. The notice set forth in Exhibit A must -be conspicuously included in any notice in an executable version of Subject -Software, related documentation or collateral in which Recipient describes the -user's rights relating to the Subject Software. Recipient may distribute the -executable version of Subject Software under a license of Recipient's choice, -which may contain terms different from this License, provided that (i) -Recipient is in compliance with the terms of this License, and (ii) the -license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of -this License, which terms may not be modified or superseded by any other terms -of such license. If Recipient distributes the executable version under a -different license Recipient must make it absolutely clear that any terms which -differ from this License are offered by Recipient alone, not by SGI. Recipient -hereby agrees to indemnify SGI for any liability incurred by SGI as a result -of any such terms Recipient offers. - -4. Termination. This License and the rights granted hereunder will terminate -automatically if Recipient fails to comply with terms herein and fails to cure -such breach within 30 days of the breach. Any sublicense to the Subject -Software which is properly granted shall survive any termination of this -License absent termination by the terms of such sublicense. Provisions which, -by their nature, must remain in effect beyond the termination of this License -shall survive. - -5. No Trademark Rights. This License does not grant any rights to use any -trade name, trademark or service mark whatsoever. No trade name, trademark or -service mark of SGI may be used to endorse or promote products derived from -the Subject Software without prior written permission of SGI. - -6. No Other Rights. This License does not grant any rights with respect to the -OpenGL API or to any software or hardware implementation thereof or to any -other software whatsoever, nor shall any other rights or licenses not -expressly granted hereunder arise by implication, estoppel or otherwise with -respect to the Subject Software. Title to and ownership of the Original -Software at all times remains with SGI. All rights in the Original Software -not expressly granted under this License are reserved. - -7. Compliance with Laws; Non-Infringement. Recipient shall comply with all -applicable laws and regulations in connection with use and distribution of the -Subject Software, including but not limited to, all export and import control -laws and regulations of the U.S. government and other countries. Recipient may -not distribute Subject Software that (i) in any way infringes (directly or -contributorily) the rights (including patent, copyright, trade secret, -trademark or other intellectual property rights of any kind) of any other -person or entity or (ii) breaches any representation or warranty, express, -implied or statutory, which under any applicable law it might be deemed to -have been distributed. - -8. Claims of Infringement. If Recipient at any time has knowledge of any one -or more third party claims that reproduction, modification, use, distribution, -import or sale of Subject Software (including particular functionality or code -incorporated in Subject Software) infringes the third party's intellectual -property rights, Recipient must place in a well-identified web page bearing -the title "LEGAL" a description of each such claim and a description of the -party making each such claim in sufficient detail that a user of the Subject -Software will know whom to contact regarding the claim. Also, upon gaining -such knowledge of any such claim, Recipient must conspicuously include the URL -for such web page in the Exhibit A notice required under Sections 2 and 3, -above, and in the text of any related documentation, license agreement or -collateral in which Recipient describes end user's rights relating to the -Subject Software. If Recipient obtains such knowledge after it makes Subject -Software available to any other person or entity, Recipient shall take other -steps (such as notifying appropriate mailing lists or newsgroups) reasonably -calculated to inform those who received the Subject Software that new -knowledge has been obtained. - -9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, -WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT -LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, -MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO -RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE -PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY -SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN -ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED -HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - -10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, -WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY), -CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY -DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY -CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK -STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER -COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF -THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY -TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO -THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT -ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO -THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT. - -11. Indemnity. Recipient shall be solely responsible for damages arising, -directly or indirectly, out of its utilization of rights under this License. -Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc. from -and against any loss, liability, damages, costs or expenses (including the -payment of reasonable attorneys fees) arising out of Recipient's use, -modification, reproduction and distribution of the Subject Software or out of -any representation or warranty made by Recipient. - -12. U.S. Government End Users. The Subject Software is a "commercial item" -consisting of "commercial computer software" as such terms are defined in -title 48 of the Code of Federal Regulations and all U.S. Government End Users -acquire only the rights set forth in this License and are subject to the terms -of this License. - -13. Miscellaneous. This License represents the complete agreement concerning -subject matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed so as to achieve as nearly as -possible the same economic effect as the original provision and the remainder -of this License will remain in effect. This License shall be governed by and -construed in accordance with the laws of the United States and the State of -California as applied to agreements entered into and to be performed entirely -within California between California residents. Any litigation relating to -this License shall be subject to the exclusive jurisdiction of the Federal -Courts of the Northern District of California (or, absent subject matter -jurisdiction in such courts, the courts of the State of California), with -venue lying exclusively in Santa Clara County, California, with the losing -party responsible for costs, including without limitation, court costs and -reasonable attorneys fees and expenses. The application of the United Nations -Convention on Contracts for the International Sale of Goods is expressly -excluded. Any law or regulation which provides that the language of a contract -shall be construed against the drafter shall not apply to this License. - -Exhibit A - -The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and 13 -of the GLX Public License Version 1.0 (the "License"). You may not use this -file except in compliance with those sections of the License. You may obtain a -copy of the License at Silicon Graphics, Inc., attn: Legal Services, 2011 N. -Shoreline Blvd., Mountain View, CA 94043 or at -http://www.sgi.com/software/opensource/glx/license.html. - -Software distributed under the License is distributed on an "AS IS" basis. ALL -WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED -WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON- -INFRINGEMENT. See the License for the specific language governing rights and -limitations under the License. - -The Original Software is GLX version 1.2 source code, released February, 1999. -The developer of the Original Software is Silicon Graphics, Inc. Those -portions of the Subject Software created by Silicon Graphics, Inc. are -Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved. 3.5. CID -Font Code Public License - -CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License") - -Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI") -hereby grants permission to Recipient (defined below), under SGI's copyrights -in the Original Software (defined below), to use, copy, modify, merge, -publish, distribute, sublicense and/or sell copies of Subject Software -(defined below) in both source code and executable form, and to permit persons -to whom the Subject Software is furnished in accordance with this License to -do the same, subject to all of the following terms and conditions, which -Recipient accepts by engaging in any such use, copying, modifying, merging, -publication, distributing, sublicensing or selling: - -1. Definitions. - - a. "Original Software" means source code of computer software code that is - described in Exhibit A as Original Software. - - b. "Modifications" means any addition to or deletion from the substance or - structure of either the Original Software or any previous Modifications. - When Subject Software is released as a series of files, a Modification - means (i) any addition to or deletion from the contents of a file - containing Original Software or previous Modifications and (ii) any new - file that contains any part of the Original Code or previous - Modifications. - - c. "Subject Software" means the Original Software or Modifications or the - combination of the Original Software and Modifications, or portions of any - of the foregoing. - - d. "Recipient" means an individual or a legal entity exercising rights - under the terms of this License. For legal entities, "Recipient" includes - any entity that controls, is controlled by, or is under common control - with Recipient. For purposes of this definition, "control" of an entity - means (i) the power, direct or indirect, to direct or manage such entity, - or (ii) ownership of fifty percent (50%) or more of the outstanding shares - or beneficial ownership of such entity. - - e. "Required Notice" means the notice set forth in Exhibit A to this - License. - - f. "Accompanying Technology" means any software or other technology that - is not a Modification and that is distributed or made publicly available - by Recipient with the Subject Software. Separate software files that do - not contain any Original Software or any previous Modification shall not - be deemed a Modification, even if such software files are aggregated as - part of a product, or in any medium of storage, with any file that does - contain Original Software or any previous Modification. - -2. License Terms. All distribution of the Subject Software must be made -subject to the terms of this License. A copy of this License and the Required -Notice must be included in any documentation for Subject Software where -Recipient's rights relating to Subject Software and/or any Accompanying -Technology are described. Distributions of Subject Software in source code -form must also include the Required Notice in every file distributed. In -addition, a ReadMe file entitled "Important Legal Notice" must be distributed -with each distribution of one or more files that incorporate Subject Software. -That file must be included with distributions made in both source code and -executable form. A copy of the License and the Required Notice must be -included in that file. Recipient may distribute Accompanying Technology under -a license of Recipient's choice, which may contain terms different from this -License, provided that (i) Recipient is in compliance with the terms of this -License, (ii) such other license terms do not modify or supersede the terms of -this License as applicable to the Subject Software, (iii) Recipient hereby -indemnifies SGI for any liability incurred by SGI as a result of the -distribution of Accompanying Technology or the use of other license terms. - -3. Termination. This License and the rights granted hereunder will terminate -automatically if Recipient fails to comply with terms herein and fails to cure -such breach within 30 days of the breach. Any sublicense to the Subject -Software that is properly granted shall survive any termination of this -License absent termination by the terms of such sublicense. Provisions which, -by their nature, must remain in effect beyond the termination of this License -shall survive. - -4. Trademark Rights. This License does not grant any rights to use any trade -name, trademark or service mark whatsoever. No trade name, trademark or -service mark of SGI may be used to endorse or promote products derived from or -incorporating any Subject Software without prior written permission of SGI. - -5. No Other Rights. No rights or licenses not expressly granted hereunder -shall arise by implication, estoppel or otherwise. Title to and ownership of -the Original Software at all times remains with SGI. All rights in the -Original Software not expressly granted under this License are reserved. - -6. Compliance with Laws; Non-Infringement. Recipient shall comply with all -applicable laws and regulations in connection with use and distribution of the -Subject Software, including but not limited to, all export and import control -laws and regulations of the U.S. government and other countries. Recipient may -not distribute Subject Software that (i) in any way infringes (directly or -contributorily) the rights (including patent, copyright, trade secret, -trademark or other intellectual property rights of any kind) of any other -person or entity, or (ii) breaches any representation or warranty, express, -implied or statutory, which under any applicable law it might be deemed to -have been distributed. - -7. Claims of Infringement. If Recipient at any time has knowledge of any one -or more third party claims that reproduction, modification, use, distribution, -import or sale of Subject Software (including particular functionality or code -incorporated in Subject Software) infringes the third party's intellectual -property rights, Recipient must place in a well-identified web page bearing -the title "LEGAL" a description of each such claim and a description of the -party making each such claim in sufficient detail that a user of the Subject -Software will know whom to contact regarding the claim. Also, upon gaining -such knowledge of any such claim, Recipient must conspicuously include the URL -for such web page in the Required Notice, and in the text of any related -documentation, license agreement or collateral in which Recipient describes -end user's rights relating to the Subject Software. If Recipient obtains such -knowledge after it makes Subject Software available to any other person or -entity, Recipient shall take other steps (such as notifying appropriate -mailing lists or newsgroups) reasonably calculated to provide such knowledge -to those who received the Subject Software. - -8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, -WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT -LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, -MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO -RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE -PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY -SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN -ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED -HEREUNDER EXCEPT UNDER THIS DISCLAIMER. - -9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, -WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY), -CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR -THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT -ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND -LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED. - -10. Indemnity. Recipient shall be solely responsible for damages arising, -directly or indirectly, out of its utilization of rights under this License. -Recipient will defend, indemnify and hold SGI and its successors and assigns -harmless from and against any loss, liability, damages, costs or expenses -(including the payment of reasonable attorneys fees) arising out of -(Recipient's use, modification, reproduction and distribution of the Subject -Software or out of any representation or warranty made by Recipient. - -11. U.S. Government End Users. The Subject Software is a "commercial item" -consisting of "commercial computer software" as such terms are defined in -title 48 of the Code of Federal Regulations and all U.S. Government End Users -acquire only the rights set forth in this License and are subject to the terms -of this License. - -12. Miscellaneous. This License represents the complete agreement concerning -subject matter hereof. If any provision of this License is held to be -unenforceable by any judicial or administrative authority having proper -jurisdiction with respect thereto, such provision shall be reformed so as to -achieve as nearly as possible the same economic effect as the original -provision and the remainder of this License will remain in effect. This -License shall be governed by and construed in accordance with the laws of the -United States and the State of California as applied to agreements entered -into and to be performed entirely within California between California -residents. Any litigation relating to this License shall be subject to the -exclusive jurisdiction of the Federal Courts of the Northern District of -California (or, absent subject matter jurisdiction in such courts, the courts -of the State of California), with venue lying exclusively in Santa Clara -County, California, with the losing party responsible for costs, including -without limitation, court costs and reasonable attorneys fees and expenses. -The application of the United Nations Convention on Contracts for the -International Sale of Goods is expressly excluded. Any law or regulation that -provides that the language of a contract shall be construed against the -drafter shall not apply to this License. - -Exhibit A - -Copyright (c) 1994-1999 Silicon Graphics, Inc. - -The contents of this file are subject to the CID Font Code Public License -Version 1.0 (the "License"). You may not use this file except in compliance -with the License. You may obtain a copy of the License at Silicon Graphics, -Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043 -or at http://www.sgi.com/software/opensource/cid/license.html - -Software distributed under the License is distributed on an "AS IS" basis. ALL -WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED -WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF -NON-INFRINGEMENT. See the License for the specific language governing rights -and limitations under the License. - -The Original Software (as defined in the License) is CID font code that was -developed by Silicon Graphics, Inc. Those portions of the Subject Software (as -defined in the License) that were created by Silicon Graphics, Inc. are -Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved. - -[NOTE: When using this text in connection with Subject Software delivered -solely in object code form, Recipient may replace the words "this file" with -"this software" in both the first and second sentences.] 3.6. Bitstream Vera -Fonts Copyright - -The fonts have a generous copyright, allowing derivative works (as long as -"Bitstream" or "Vera" are not in the names), and full redistribution (so long -as they are not *sold* by themselves). They can be be bundled, redistributed -and sold with any software. - -The fonts are distributed under the following copyright: - -Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a -trademark of Bitstream, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of the fonts accompanying this license ("Fonts") and associated documentation -files (the "Font Software"), to reproduce and distribute the Font Software, -including without limitation the rights to use, copy, merge, publish, -distribute, and/or sell copies of the Font Software, and to permit persons to -whom the Font Software is furnished to do so, subject to the following -conditions: - -The above copyright and trademark notices and this permission notice shall be -included in all copies of one or more of the Font Software typefaces. - -The Font Software may be modified, altered, or added to, and in particular the -designs of glyphs or characters in the Fonts may be modified and additional -glyphs or characters may be added to the Fonts, only if the fonts are renamed -to names not containing either the words "Bitstream" or the word "Vera". - -This License becomes null and void to the extent applicable to Fonts or Font -Software that has been modified and is distributed under the "Bitstream Vera" -names. - -The Font Software may be sold as part of a larger software package but no copy -of one or more of the Font Software typefaces may be sold by itself. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, -TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION -BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, -SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO -USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. - -Except as contained in this notice, the names of Gnome, the Gnome Foundation, -and Bitstream Inc., shall not be used in advertising or otherwise to promote -the sale, use or other dealings in this Font Software without prior written -authorization from the Gnome Foundation or Bitstream Inc., respectively. For -further information, contact: fonts at gnome dot org. 3.7. Bigelow & Holmes -Inc and URW++ GmbH Luxi font license - -Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction -code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a -registered trademark of Bigelow & Holmes Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of these Fonts and associated documentation files (the "Font Software"), to -deal in the Font Software, including without limitation the rights to use, -copy, merge, publish, distribute, sublicense, and/or sell copies of the Font -Software, and to permit persons to whom the Font Software is furnished to do -so, subject to the following conditions: - -The above copyright and trademark notices and this permission notice shall be -included in all copies of one or more of the Font Software. - -The Font Software may not be modified, altered, or added to, and in particular -the designs of glyphs or characters in the Fonts may not be modified nor may -additional glyphs or characters be added to the Fonts. This License becomes -null and void when the Fonts or Font Software have been modified. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, -TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++ -GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY -GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR -INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT -SOFTWARE. - -Except as contained in this notice, the names of Bigelow & Holmes Inc. and -URW++ GmbH. shall not be used in advertising or otherwise to promote the sale, -use or other dealings in this Font Software without prior written -authorization from Bigelow & Holmes Inc. and URW++ GmbH. - -For further information, contact: - -info@urwpp.de or design@bigelowandholmes.com - - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to zlib v1.2.8, which may be included -with JRE 8, JDK 8, and OpenJDK 8. - ---- begin of LICENSE --- - - version 1.2.8, April 28th, 2013 - - Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - -%% This notice is provided with respect to the following which may be -included with JRE 8, JDK 8, and OpenJDK 8. - - Apache Commons Math 3.2 - Apache Derby 10.11.1.2 - Apache Jakarta BCEL 5.1 - Apache Jakarta Regexp 1.4 - Apache Santuario XML Security for Java 1.5.4 - Apache Xalan-Java 2.7.1 - Apache Xerces Java 2.10.0 - Apache XML Resolver 1.1 - Dynalink 0.5 - - ---- begin of LICENSE --- - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---- end of LICENSE --- - -------------------------------------------------------------------------------- - Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/annotations-java5.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/annotations-java5.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/bootstrap.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/bootstrap.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/common-image-3.3.2.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/common-image-3.3.2.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/common-image-3.4.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/common-image-3.4.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/common-io-3.3.2.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/common-io-3.3.2.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/common-io-3.4.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/common-io-3.4.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/common-lang-3.3.2.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/common-lang-3.3.2.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/common-lang-3.4.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/common-lang-3.4.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/commons-compress-1.17.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/commons-compress-1.17.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/commons-compress-1.18.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/commons-compress-1.18.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/extensions.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/extensions.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/FastInfoset-1.2.15.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/FastInfoset-1.2.15.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/forms_rt.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/forms_rt.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/icons.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/icons.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/imageio-core-3.3.2.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/imageio-core-3.3.2.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/imageio-core-3.4.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/imageio-core-3.4.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/imageio-metadata-3.3.2.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/imageio-metadata-3.3.2.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/imageio-metadata-3.4.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/imageio-metadata-3.4.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/imageio-tiff-3.3.2.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/imageio-tiff-3.3.2.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/imageio-tiff-3.4.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/imageio-tiff-3.4.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/istack-commons-runtime-3.0.7.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/istack-commons-runtime-3.0.7.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/jackson-core-2.9.6.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/jackson-core-2.9.6.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/jackson-core-2.9.7.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/jackson-core-2.9.7.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/jackson-databind-2.9.6.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/jackson-databind-2.9.6.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/jackson-databind-2.9.7.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/jackson-databind-2.9.7.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/javax.activation-1.2.0.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/javax.activation-1.2.0.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/javax.annotation-api-1.3.2.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/javax.annotation-api-1.3.2.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/jaxb-api-2.3.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/jaxb-api-2.3.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/jaxb-runtime-2.3.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/jaxb-runtime-2.3.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/jps-model.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/jps-model.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/jsch-0.1.54.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/jsch-0.1.54.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/jsch-0.1.55.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/jsch-0.1.55.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/jsoup-1.10.3.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/jsoup-1.10.3.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/jsoup-1.11.3.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/jsoup-1.11.3.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlin-reflect-1.3.11.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlin-reflect-1.3.11.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlin-reflect.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlin-reflect.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlin-stdlib-1.3.11.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlin-stdlib-1.3.11.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlin-stdlib-common-1.3.11.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlin-stdlib-common-1.3.11.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlin-stdlib.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlin-stdlib.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlin-stdlib-jdk7-1.3.11.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlin-stdlib-jdk7-1.3.11.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlin-stdlib-jdk7.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlin-stdlib-jdk7.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlin-stdlib-jdk8-1.3.11.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlin-stdlib-jdk8-1.3.11.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlin-stdlib-jdk8.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlin-stdlib-jdk8.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlinx-coroutines-core-0.26.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlinx-coroutines-core-0.26.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlinx-coroutines-core-1.0.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlinx-coroutines-core-1.0.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlinx-coroutines-core-common-1.0.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlinx-coroutines-core-common-1.0.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlinx-coroutines-jdk8-0.26.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlinx-coroutines-jdk8-0.26.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/kotlinx-coroutines-jdk8-1.0.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/kotlinx-coroutines-jdk8-1.0.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/markdown4j-2.2-cj-1.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/markdown4j-2.2-cj-1.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/mutability-annotations-compat.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/mutability-annotations-compat.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-buffer-4.1.30.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-buffer-4.1.30.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-buffer-4.1.32.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-buffer-4.1.32.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-codec-4.1.30.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-codec-4.1.30.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-codec-4.1.32.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-codec-4.1.32.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-codec-http-4.1.30.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-codec-http-4.1.30.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-codec-http-4.1.32.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-codec-http-4.1.32.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-common-4.1.30.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-common-4.1.30.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-common-4.1.32.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-common-4.1.32.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-handler-4.1.30.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-handler-4.1.30.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-handler-4.1.32.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-handler-4.1.32.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-resolver-4.1.30.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-resolver-4.1.30.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-resolver-4.1.32.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-resolver-4.1.32.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-transport-4.1.30.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-transport-4.1.30.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/netty-transport-4.1.32.Final.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/netty-transport-4.1.32.Final.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/openapi.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/openapi.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/platform-api.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/platform-api.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/platform-impl.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/platform-impl.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/pty4j-0.8.6.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/pty4j-0.8.6.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/pty4j-0.9.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/pty4j-0.9.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/pty4j-native/linux/ppc64le/libpty.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/pty4j-native/linux/ppc64le/libpty.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/pty4j-native/linux/x86/libpty.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/pty4j-native/linux/x86/libpty.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/pty4j-native/linux/x86_64/libpty.so and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/pty4j-native/linux/x86_64/libpty.so differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/pycharm.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/pycharm.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/pycharm-pydev.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/pycharm-pydev.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/resources.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/resources.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/snakeyaml-1.22.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/snakeyaml-1.22.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/snakeyaml-1.23.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/snakeyaml-1.23.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/src/pycharm-openapi-src.zip and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/src/pycharm-openapi-src.zip differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/src/pycharm-pydev-src.zip and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/src/pycharm-pydev-src.zip differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/stax-ex-1.8.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/stax-ex-1.8.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/trove4j.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/trove4j.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/txw2-2.3.1.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/txw2-2.3.1.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/util.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/util.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/winp-1.27.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/winp-1.27.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/lib/winp-1.28.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/lib/winp-1.28.jar differ diff -Nru pycharm-2018.3.5/license/third-party-libraries.html pycharm-2019.1/license/third-party-libraries.html --- pycharm-2018.3.5/license/third-party-libraries.html 2019-02-26 08:40:04.000000000 +0000 +++ pycharm-2019.1/license/third-party-libraries.html 2019-03-19 14:23:46.000000000 +0000 @@ -105,15 +105,6 @@ - Apache Commons Lang - 2.6 - - - Apache 2.0 - - - - Apache Commons Logging 1.1.1 @@ -168,6 +159,15 @@ + Common Annotations for the JavaTM Platform API + 1.3.2 + + + CDDL 1.1 / GPL 2.0 + Classpath + + + + delight-rhino-sandbox 0.0.9 @@ -240,11 +240,11 @@ - Guava - 23.6 + Guava + 25.1 - Apache 2.0 + Apache 2.0 @@ -267,11 +267,11 @@ - ImageIO - 3.2.1 + ImageIO + 3.4.1 - BSD + BSD @@ -330,15 +330,6 @@ - Java-WebSocket - 1.4.0 Trunk - - - MIT - - - - Java Compatibility 1.0.1 @@ -348,11 +339,11 @@ - JavaCVS - no version number available (with patches by JetBrains) + JavaBeans Activation Framework + 1.2 - Sun Public License + CDDL 1.1 / GPL 2.0 + Classpath @@ -375,6 +366,24 @@ + JAXB (Java Architecture for XML Binding) API + 2.3.1 + + + CDDL 1.1 / GPL 2.0 + Classpath + + + + + JAXB (JSR 222) Reference Implementation + 2.3.1 + + + CDDL 1.1 / GPL 2.0 + Classpath + + + + Jaxen @@ -411,11 +420,11 @@ - JetBrains Annotations for Java 5 - 16.0.1 + JetBrains Annotations for Java 5 + 17.0.0 - Apache 2.0 + Apache 2.0 @@ -501,11 +510,11 @@ - jsoup - 1.10.3 + jsoup + 1.11.3 - MIT + MIT @@ -528,15 +537,6 @@ - markdown4j - 2.2 - - - New BSD - - - - markdownj 0.4.2 @@ -591,20 +591,20 @@ - netty-codec-http - 4.1.24 + netty-codec-http + 4.1.32 - Apache 2.0 + Apache 2.0 - netty-handler - 4.1.24 + netty-handler + 4.1.32 - Apache 2.0 + Apache 2.0 @@ -636,8 +636,8 @@ - pty4j - 0.8.6 + pty4j + 0.9.1 Eclipse Public License v1.0 @@ -744,15 +744,6 @@ - Trilead SSH build213 - build213 - - - BSD style (see LICENSE.txt in trilead-ssh2-build213.jar) - - - - Trove4j 1.1 (with patches by JetBrains) @@ -780,11 +771,11 @@ - Xerces - 2.11 + Xerces + 2.12.0 - Apache 2.0 + Apache 2.0 Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/configurationScript/lib/configurationScript.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/configurationScript/lib/configurationScript.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/copyright/lib/copyright.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/copyright/lib/copyright.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/copyright/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/copyright/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/cvsIntegration/lib/cvsIntegration.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/cvsIntegration/lib/cvsIntegration.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/cvsIntegration/lib/cvs_util.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/cvsIntegration/lib/cvs_util.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/cvsIntegration/lib/javacvs-src.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/cvsIntegration/lib/javacvs-src.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/cvsIntegration/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/cvsIntegration/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/cvsIntegration/lib/smartcvs-src.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/cvsIntegration/lib/smartcvs-src.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/cvsIntegration/lib/trilead-ssh2-build213.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/cvsIntegration/lib/trilead-ssh2-build213.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/editorconfig/lib/editorconfig-core-java.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/editorconfig/lib/editorconfig-core-java.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/editorconfig/lib/editorconfig.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/editorconfig/lib/editorconfig.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/editorconfig/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/editorconfig/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/git4idea/lib/git4idea.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/git4idea/lib/git4idea.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/git4idea/lib/git4idea-rt.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/git4idea/lib/git4idea-rt.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/git4idea/lib/remote-servers-git.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/git4idea/lib/remote-servers-git.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/git4idea/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/git4idea/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/github/lib/github.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/github/lib/github.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/github/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/github/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/hg4idea/lib/hg4idea.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/hg4idea/lib/hg4idea.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/hg4idea/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/hg4idea/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/IntelliLang/lib/IntelliLang.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/IntelliLang/lib/IntelliLang.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/IntelliLang-python/lib/IntelliLang-python.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/IntelliLang-python/lib/IntelliLang-python.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/ipnb/lib/commons-lang-2.6.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/ipnb/lib/commons-lang-2.6.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/ipnb/lib/ipnb.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/ipnb/lib/ipnb.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/ipnb/lib/java_websocket.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/ipnb/lib/java_websocket.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/ipnb/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/ipnb/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/markdown/lib/markdown.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/markdown/lib/markdown.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/markdown/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/markdown/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/properties/lib/properties.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/properties/lib/properties.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/properties/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/properties/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/python-copyright/lib/python-copyright.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/python-copyright/lib/python-copyright.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/python-copyright/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/python-copyright/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/python-rest/lib/python-rest.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/python-rest/lib/python-rest.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/python-rest/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/python-rest/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/python-terminal/lib/python-terminal.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/python-terminal/lib/python-terminal.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/rest/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/rest/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/rest/lib/rest.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/rest/lib/rest.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/settings-repository/lib/jgit.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/settings-repository/lib/jgit.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/settings-repository/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/settings-repository/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/settings-repository/lib/settings-repository.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/settings-repository/lib/settings-repository.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/svn4idea/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/svn4idea/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/svn4idea/lib/svn4idea.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/svn4idea/lib/svn4idea.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/tasks/lib/jira.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/tasks/lib/jira.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/tasks/lib/tasks-api.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/tasks/lib/tasks-api.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/tasks/lib/tasks-compatibility.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/tasks/lib/tasks-compatibility.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/tasks/lib/tasks-core.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/tasks/lib/tasks-core.jar differ diff -Nru pycharm-2018.3.5/plugins/terminal/jediterm-bash.in pycharm-2019.1/plugins/terminal/jediterm-bash.in --- pycharm-2018.3.5/plugins/terminal/jediterm-bash.in 2019-02-26 08:40:01.000000000 +0000 +++ pycharm-2019.1/plugins/terminal/jediterm-bash.in 2019-03-19 14:23:44.000000000 +0000 @@ -1,6 +1,8 @@ #!/bin/bash -function load_login_configs { +if [ -n "$LOGIN_SHELL" ]; then + unset LOGIN_SHELL + # When bash is invoked as an interactive login shell, or as a non-interac- # tive shell with the --login option, it first reads and executes commands # from the file /etc/profile, if that file exists. After reading that @@ -13,47 +15,36 @@ fi if [ -f ~/.bash_profile ]; then - source ~/.bash_profile + source ~/.bash_profile else - if [ -f ~/.bash_login ]; then - source ~/.bash_login - else - if [ -f ~/.profile ]; then - source ~/.profile - fi - fi + if [ -f ~/.bash_login ]; then + source ~/.bash_login + else + if [ -f ~/.profile ]; then + source ~/.profile + fi + fi fi -} - -function load_interactive_configs { +else if [ -f ~/.bashrc ]; then - source ~/.bashrc + source ~/.bashrc fi -} +fi function override_jb_variables { - for VARIABLE in $(env) + env | while IFS="=" read NAME VALUE do - NAME=${VARIABLE%%=*} if [[ $NAME = '_INTELLIJ_FORCE_SET_'* ]] then NEW_NAME=${NAME:20} if [ -n "$NEW_NAME" ] then - VALUE=${VARIABLE#*=} export "$NEW_NAME"="$VALUE" fi fi done } -if [ -n "$LOGIN_SHELL" ]; then - load_login_configs - unset LOGIN_SHELL -fi - -load_interactive_configs - override_jb_variables # mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving @@ -62,16 +53,6 @@ bind '"\e\O[C":forward-word' bind '"\e\O[D": backward-word' -function generate_command_executed_sequence() { - printf '\e\7' -} - -export -f generate_command_executed_sequence - - -#generate escape sequence after command is executed to notify jediterm emulator -trap "generate_command_executed_sequence" DEBUG - if [ -n "$JEDITERM_USER_RCFILE" ] then source "$JEDITERM_USER_RCFILE" @@ -80,18 +61,20 @@ if [ -n "$JEDITERM_SOURCE" ] then - source "$JEDITERM_SOURCE" + source "$JEDITERM_SOURCE" $JEDITERM_SOURCE_ARGS unset JEDITERM_SOURCE + unset JEDITERM_SOURCE_ARGS fi function configureCommandHistory { local commandHistoryFile="$__INTELLIJ_COMMAND_HISTFILE__" - if [ -n "$commandHistoryFile" ] + if [ -n "$commandHistoryFile" ] && [ -z "`trap -p EXIT`" ] then - if ! [ -s "$commandHistoryFile" ] && [ -f "$HISTFILE" ] + if [ ! -s "$commandHistoryFile" ] && [ -f "$HISTFILE" ] then command cp "$HISTFILE" "$commandHistoryFile" fi + trap "history -w $HISTFILE" EXIT export HISTFILE="$commandHistoryFile" fi } Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/terminal/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/terminal/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/terminal/lib/terminal.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/terminal/lib/terminal.jar differ diff -Nru pycharm-2018.3.5/plugins/terminal/.zshrc pycharm-2019.1/plugins/terminal/.zshrc --- pycharm-2018.3.5/plugins/terminal/.zshrc 2019-02-26 08:40:01.000000000 +0000 +++ pycharm-2019.1/plugins/terminal/.zshrc 2019-03-19 14:23:44.000000000 +0000 @@ -41,20 +41,19 @@ if [ -n "$JEDITERM_SOURCE" ] then - source $(echo $JEDITERM_SOURCE) + source $(echo $JEDITERM_SOURCE) $JEDITERM_SOURCE_ARGS unset JEDITERM_SOURCE + unset JEDITERM_SOURCE_ARGS fi function override_jb_variables { - for VARIABLE in $(env) + env | while IFS="=" read NAME VALUE do - NAME=${VARIABLE%%=*} if [[ $NAME = '_INTELLIJ_FORCE_SET_'* ]] then NEW_NAME=${NAME:20} if [ -n "$NEW_NAME" ] then - VALUE=${VARIABLE#*=} export "$NEW_NAME"="$VALUE" fi fi @@ -62,16 +61,3 @@ } override_jb_variables - -function configureCommandHistory { - local commandHistoryFile="$__INTELLIJ_COMMAND_HISTFILE__" - if [ -n "$commandHistoryFile" ] - then - if ! [ -s "$commandHistoryFile" ] && [ -f "$HISTFILE" ] - then - command cp "$HISTFILE" "$commandHistoryFile" - fi - export HISTFILE="$commandHistoryFile" - fi -} -configureCommandHistory Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/yaml/lib/resources_en.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/yaml/lib/resources_en.jar differ Binary files /tmp/tmpuhIUME/KaZ5rhFl6N/pycharm-2018.3.5/plugins/yaml/lib/yaml.jar and /tmp/tmpuhIUME/qQ3dUtkVSx/pycharm-2019.1/plugins/yaml/lib/yaml.jar differ diff -Nru pycharm-2018.3.5/product-info.json pycharm-2019.1/product-info.json --- pycharm-2018.3.5/product-info.json 2019-02-26 09:00:56.000000000 +0000 +++ pycharm-2019.1/product-info.json 2019-03-19 14:39:17.000000000 +0000 @@ -1,7 +1,7 @@ { "name": "PyCharm", - "version": "2018.3.5", - "buildNumber": "183.5912.18", + "version": "2019.1", + "buildNumber": "191.6183.50", "productCode": "PC", "svgIconPath": "bin/pycharm.svg", "launch": [