<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _download(self):
 """Support function that encapsulates the OpenSSL transfer of the CSPICE package to the self._local io.ByteIO stream. :raises RuntimeError if there has been any issue with the HTTPS communication .. note:: Handling of CSPICE downloads from HTTPS Some Python distributions may be linked to an old version of OpenSSL which will not let you connect to NAIF server due to recent SSL cert upgrades on the JPL servers. Moreover, versions older than OpenSSL 1.0.1g are known to contain the 'the Heartbleed Bug'. Therefore this method provides two different implementations for the HTTPS GET call to the NAIF server to download the required CSPICE distribution package. """

        # Use urllib3 (based on PyOpenSSL).
        if ssl.OPENSSL_VERSION < 'OpenSSL 1.0.1g':
            # Force urllib3 to use pyOpenSSL
            import urllib3.contrib.pyopenssl
            urllib3.contrib.pyopenssl.inject_into_urllib3()

            import certifi
            import urllib3

            try:
                # Search proxy in ENV variables
                proxies = {}
                for key, value in os.environ.items():
                    if '_proxy' in key.lower():
                        proxies[key.lower().replace('_proxy','')] = value

                # Create a ProolManager
                if 'https' in proxies:
                    https = urllib3.ProxyManager(proxies['https'],
                                                cert_reqs='CERT_REQUIRED',
                                                ca_certs=certifi.where())
                elif 'http' in proxies:
                    https = urllib3.ProxyManager(proxies['http'],
                                                cert_reqs='CERT_REQUIRED',
                                                ca_certs=certifi.where())
                else:
                    https = urllib3.PoolManager(cert_reqs='CERT_REQUIRED',
                                                ca_certs=certifi.where())
                # Send the request to get the CSPICE package.
                response = https.request('GET', self._rcspice,
                                         timeout=urllib3.Timeout(10))
            except urllib3.exceptions.HTTPError as err:
                raise RuntimeError(err.message)

            # Convert the response to io.BytesIO and store it in local memory.
            self._local = io.BytesIO(response.data)

        # Use the standard urllib (using system OpenSSL).
        else:
            try:
                # Send the request to get the CSPICE package (proxy auto detected).
                response = urllib.request.urlopen(self._rcspice, timeout=10)
            except urllib.error.URLError as err:
                raise RuntimeError(err.reason)

            # Convert the response to io.BytesIO and store it in local memory.
            self._local = io.BytesIO(response.read())