├── .github
└── workflows
│ ├── binder-badge.yaml
│ └── publish.yml
├── CHANGELOG.md
├── Dockerfile
├── LICENSE
├── MANIFEST.in
├── README.md
├── apt.txt
├── environment.yml
├── jupyter_desktop
├── __init__.py
└── share
│ ├── tigervnc
│ ├── bin
│ │ ├── Xvnc
│ │ ├── vncconfig
│ │ ├── vncpasswd
│ │ ├── vncserver
│ │ ├── vncviewer
│ │ └── x0vncserver
│ ├── lib64
│ │ ├── swrast_dri.so
│ │ └── xorg
│ │ │ └── protocol.txt
│ └── share
│ │ ├── applications
│ │ └── vncviewer.desktop
│ │ ├── doc
│ │ └── tigervnc-1.9.0
│ │ │ ├── LICENCE.TXT
│ │ │ └── README.rst
│ │ ├── icons
│ │ └── hicolor
│ │ │ ├── 16x16
│ │ │ └── apps
│ │ │ │ └── tigervnc.png
│ │ │ ├── 22x22
│ │ │ └── apps
│ │ │ │ └── tigervnc.png
│ │ │ ├── 24x24
│ │ │ └── apps
│ │ │ │ └── tigervnc.png
│ │ │ ├── 32x32
│ │ │ └── apps
│ │ │ │ └── tigervnc.png
│ │ │ ├── 48x48
│ │ │ └── apps
│ │ │ │ └── tigervnc.png
│ │ │ └── scalable
│ │ │ └── apps
│ │ │ └── tigervnc.svg
│ │ ├── locale
│ │ ├── bg
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── cs
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── da
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── de
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── el
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── eo
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── es
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── fi
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── fr
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── fur
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── hu
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── id
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── it
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── nl
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── pl
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── pt_BR
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── ru
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── sk
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── sr
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── sv
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── tr
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── uk
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ ├── vi
│ │ │ └── LC_MESSAGES
│ │ │ │ └── tigervnc.mo
│ │ └── zh_CN
│ │ │ └── LC_MESSAGES
│ │ │ └── tigervnc.mo
│ │ ├── man
│ │ └── man1
│ │ │ ├── Xvnc.1
│ │ │ ├── vncconfig.1
│ │ │ ├── vncpasswd.1
│ │ │ ├── vncserver.1
│ │ │ ├── vncviewer.1
│ │ │ └── x0vncserver.1
│ │ └── usr
│ │ └── local
│ │ └── share
│ │ └── vnc
│ │ └── classes
│ │ ├── README
│ │ ├── VncViewer.jar
│ │ ├── favicon.ico
│ │ └── index.vnc
│ ├── web
│ ├── noVNC-1.2.0
│ │ ├── .eslintignore
│ │ ├── .eslintrc
│ │ ├── .github
│ │ │ ├── ISSUE_TEMPLATE
│ │ │ │ ├── bug_report.md
│ │ │ │ └── feature_request.md
│ │ │ └── workflows
│ │ │ │ ├── deploy.yml
│ │ │ │ ├── lint.yml
│ │ │ │ └── test.yml
│ │ ├── .gitignore
│ │ ├── .gitmodules
│ │ ├── AUTHORS
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── app
│ │ │ ├── error-handler.js
│ │ │ ├── images
│ │ │ │ ├── alt.svg
│ │ │ │ ├── clipboard.svg
│ │ │ │ ├── connect.svg
│ │ │ │ ├── ctrl.svg
│ │ │ │ ├── ctrlaltdel.svg
│ │ │ │ ├── disconnect.svg
│ │ │ │ ├── drag.svg
│ │ │ │ ├── error.svg
│ │ │ │ ├── esc.svg
│ │ │ │ ├── expander.svg
│ │ │ │ ├── fullscreen.svg
│ │ │ │ ├── handle.svg
│ │ │ │ ├── handle_bg.svg
│ │ │ │ ├── icons
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── novnc-120x120.png
│ │ │ │ │ ├── novnc-144x144.png
│ │ │ │ │ ├── novnc-152x152.png
│ │ │ │ │ ├── novnc-16x16.png
│ │ │ │ │ ├── novnc-192x192.png
│ │ │ │ │ ├── novnc-24x24.png
│ │ │ │ │ ├── novnc-32x32.png
│ │ │ │ │ ├── novnc-48x48.png
│ │ │ │ │ ├── novnc-60x60.png
│ │ │ │ │ ├── novnc-64x64.png
│ │ │ │ │ ├── novnc-72x72.png
│ │ │ │ │ ├── novnc-76x76.png
│ │ │ │ │ ├── novnc-96x96.png
│ │ │ │ │ ├── novnc-icon-sm.svg
│ │ │ │ │ └── novnc-icon.svg
│ │ │ │ ├── info.svg
│ │ │ │ ├── keyboard.svg
│ │ │ │ ├── power.svg
│ │ │ │ ├── settings.svg
│ │ │ │ ├── tab.svg
│ │ │ │ ├── toggleextrakeys.svg
│ │ │ │ ├── warning.svg
│ │ │ │ └── windows.svg
│ │ │ ├── locale
│ │ │ │ ├── README
│ │ │ │ ├── cs.json
│ │ │ │ ├── de.json
│ │ │ │ ├── el.json
│ │ │ │ ├── es.json
│ │ │ │ ├── ja.json
│ │ │ │ ├── ko.json
│ │ │ │ ├── nl.json
│ │ │ │ ├── pl.json
│ │ │ │ ├── ru.json
│ │ │ │ ├── sv.json
│ │ │ │ ├── tr.json
│ │ │ │ ├── zh_CN.json
│ │ │ │ └── zh_TW.json
│ │ │ ├── localization.js
│ │ │ ├── sounds
│ │ │ │ ├── CREDITS
│ │ │ │ ├── bell.mp3
│ │ │ │ └── bell.oga
│ │ │ ├── styles
│ │ │ │ ├── Orbitron700.ttf
│ │ │ │ ├── Orbitron700.woff
│ │ │ │ └── base.css
│ │ │ ├── ui.js
│ │ │ └── webutil.js
│ │ ├── core
│ │ │ ├── base64.js
│ │ │ ├── decoders
│ │ │ │ ├── copyrect.js
│ │ │ │ ├── hextile.js
│ │ │ │ ├── raw.js
│ │ │ │ ├── rre.js
│ │ │ │ ├── tight.js
│ │ │ │ └── tightpng.js
│ │ │ ├── deflator.js
│ │ │ ├── des.js
│ │ │ ├── display.js
│ │ │ ├── encodings.js
│ │ │ ├── inflator.js
│ │ │ ├── input
│ │ │ │ ├── domkeytable.js
│ │ │ │ ├── fixedkeys.js
│ │ │ │ ├── gesturehandler.js
│ │ │ │ ├── keyboard.js
│ │ │ │ ├── keysym.js
│ │ │ │ ├── keysymdef.js
│ │ │ │ ├── util.js
│ │ │ │ ├── vkeys.js
│ │ │ │ └── xtscancodes.js
│ │ │ ├── rfb.js
│ │ │ ├── util
│ │ │ │ ├── browser.js
│ │ │ │ ├── cursor.js
│ │ │ │ ├── element.js
│ │ │ │ ├── events.js
│ │ │ │ ├── eventtarget.js
│ │ │ │ ├── int.js
│ │ │ │ ├── logging.js
│ │ │ │ ├── polyfill.js
│ │ │ │ └── strings.js
│ │ │ └── websock.js
│ │ ├── docs
│ │ │ ├── API-internal.md
│ │ │ ├── API.md
│ │ │ ├── EMBEDDING.md
│ │ │ ├── LIBRARY.md
│ │ │ ├── LICENSE.BSD-2-Clause
│ │ │ ├── LICENSE.BSD-3-Clause
│ │ │ ├── LICENSE.MPL-2.0
│ │ │ ├── LICENSE.OFL-1.1
│ │ │ ├── flash_policy.txt
│ │ │ ├── links
│ │ │ ├── notes
│ │ │ ├── rfb_notes
│ │ │ ├── rfbproto-3.3.pdf
│ │ │ ├── rfbproto-3.7.pdf
│ │ │ └── rfbproto-3.8.pdf
│ │ ├── karma.conf.js
│ │ ├── package.json
│ │ ├── po
│ │ │ ├── .eslintrc
│ │ │ ├── Makefile
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── el.po
│ │ │ ├── es.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── nl.po
│ │ │ ├── noVNC.pot
│ │ │ ├── pl.po
│ │ │ ├── po2js
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── xgettext-html
│ │ │ ├── zh_CN.po
│ │ │ └── zh_TW.po
│ │ ├── snap
│ │ │ ├── hooks
│ │ │ │ └── configure
│ │ │ ├── local
│ │ │ │ └── svc_wrapper.sh
│ │ │ └── snapcraft.yaml
│ │ ├── tests
│ │ │ ├── .eslintrc
│ │ │ ├── assertions.js
│ │ │ ├── fake.websocket.js
│ │ │ ├── karma-test-main.js
│ │ │ ├── playback-ui.js
│ │ │ ├── playback.js
│ │ │ ├── test.base64.js
│ │ │ ├── test.deflator.js
│ │ │ ├── test.display.js
│ │ │ ├── test.gesturehandler.js
│ │ │ ├── test.helper.js
│ │ │ ├── test.int.js
│ │ │ ├── test.keyboard.js
│ │ │ ├── test.localization.js
│ │ │ ├── test.rfb.js
│ │ │ ├── test.util.js
│ │ │ ├── test.websock.js
│ │ │ ├── test.webutil.js
│ │ │ └── vnc_playback.html
│ │ ├── utils
│ │ │ ├── .eslintrc
│ │ │ ├── README.md
│ │ │ ├── b64-to-binary.pl
│ │ │ ├── genkeysymdef.js
│ │ │ ├── launch.sh
│ │ │ ├── u2x11
│ │ │ ├── use_require.js
│ │ │ ├── use_require_helpers.js
│ │ │ └── validate
│ │ ├── vendor
│ │ │ ├── browser-es-module-loader
│ │ │ │ ├── README.md
│ │ │ │ ├── dist
│ │ │ │ │ ├── babel-worker.js
│ │ │ │ │ ├── browser-es-module-loader.js
│ │ │ │ │ └── browser-es-module-loader.js.map
│ │ │ │ ├── genworker.js
│ │ │ │ ├── rollup.config.js
│ │ │ │ └── src
│ │ │ │ │ ├── babel-worker.js
│ │ │ │ │ └── browser-es-module-loader.js
│ │ │ ├── pako
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README.md
│ │ │ │ └── lib
│ │ │ │ │ ├── utils
│ │ │ │ │ └── common.js
│ │ │ │ │ └── zlib
│ │ │ │ │ ├── adler32.js
│ │ │ │ │ ├── constants.js
│ │ │ │ │ ├── crc32.js
│ │ │ │ │ ├── deflate.js
│ │ │ │ │ ├── gzheader.js
│ │ │ │ │ ├── inffast.js
│ │ │ │ │ ├── inflate.js
│ │ │ │ │ ├── inftrees.js
│ │ │ │ │ ├── messages.js
│ │ │ │ │ ├── trees.js
│ │ │ │ │ └── zstream.js
│ │ │ └── promise.js
│ │ ├── vnc.html
│ │ └── vnc_lite.html
│ └── novnc-vnc_lite.html.patch
│ └── xstartup
└── setup.py
/.github/workflows/binder-badge.yaml:
--------------------------------------------------------------------------------
1 | #./.github/workflows/binder-badge.yaml
2 | name: Binder Badge
3 | on: [pull_request_target]
4 |
5 | jobs:
6 | binder:
7 | runs-on: ubuntu-latest
8 | permissions:
9 | pull-requests: write
10 | steps:
11 | - name: comment on PR with Binder link
12 | uses: actions/github-script@v1
13 | with:
14 | github-token: ${{secrets.GITHUB_TOKEN}}
15 | script: |
16 | var PR_HEAD_USERREPO = process.env.PR_HEAD_USERREPO;
17 | var PR_HEAD_SHA = process.env.PR_HEAD_SHA;
18 | github.issues.createComment({
19 | issue_number: context.issue.number,
20 | owner: context.repo.owner,
21 | repo: context.repo.repo,
22 | body: `[](https://mybinder.org/v2/gh/${PR_HEAD_USERREPO}/${PR_HEAD_SHA}?urlpath=desktop) :point_left: Launch a binder notebook on this branch for commit ${PR_HEAD_SHA}`
23 | })
24 | env:
25 | PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
26 | PR_HEAD_USERREPO: ${{ github.event.pull_request.head.repo.full_name }}
27 |
--------------------------------------------------------------------------------
/.github/workflows/publish.yml:
--------------------------------------------------------------------------------
1 | # Build releases and (on tags) publish to PyPI
2 | name: Release
3 |
4 | # always build releases (to make sure wheel-building works)
5 | # but only publish to PyPI on tags
6 | on:
7 | push:
8 | pull_request:
9 |
10 | jobs:
11 | build-release:
12 | runs-on: ubuntu-20.04
13 | steps:
14 | - uses: actions/checkout@v2
15 | - uses: actions/setup-python@v2
16 | with:
17 | python-version: 3.8
18 |
19 | - name: install build package
20 | run: |
21 | pip install --upgrade pip
22 | pip install build
23 | pip freeze
24 |
25 | - name: build release
26 | run: |
27 | python -m build --sdist --wheel .
28 | ls -l dist
29 |
30 | - name: publish to pypi
31 | uses: pypa/gh-action-pypi-publish@v1.4.1
32 | if: startsWith(github.ref, 'refs/tags/')
33 | with:
34 | user: __token__
35 | password: ${{ secrets.pypi_password }}
36 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 0.1.2
2 |
3 | - Fix cross-origin issue in Safari (#9, thanks to @eslavich)
4 |
5 | # 0.1.1
6 |
7 | - Increase default resolution to 1680x1050. The wider screen
8 | matches how many user displays are, and there do not seem to
9 | be lag issues.
10 |
11 | # 0.1
12 |
13 | - Initial release
14 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM jupyter/base-notebook:python-3.7.6
2 |
3 |
4 | USER root
5 |
6 | RUN apt-get -y update \
7 | && apt-get install -y dbus-x11 \
8 | firefox \
9 | xfce4 \
10 | xfce4-panel \
11 | xfce4-session \
12 | xfce4-settings \
13 | xorg \
14 | xubuntu-icon-theme
15 |
16 | # Remove light-locker to prevent screen lock
17 | ARG TURBOVNC_VERSION=2.2.6
18 | RUN wget -q "https://sourceforge.net/projects/turbovnc/files/${TURBOVNC_VERSION}/turbovnc_${TURBOVNC_VERSION}_amd64.deb/download" -O turbovnc_${TURBOVNC_VERSION}_amd64.deb && \
19 | apt-get install -y -q ./turbovnc_${TURBOVNC_VERSION}_amd64.deb && \
20 | apt-get remove -y -q light-locker && \
21 | rm ./turbovnc_${TURBOVNC_VERSION}_amd64.deb && \
22 | ln -s /opt/TurboVNC/bin/* /usr/local/bin/
23 |
24 | # apt-get may result in root-owned directories/files under $HOME
25 | RUN chown -R $NB_UID:$NB_GID $HOME
26 |
27 | ADD . /opt/install
28 | RUN fix-permissions /opt/install
29 |
30 | USER $NB_USER
31 | RUN cd /opt/install && \
32 | conda env update -n base --file environment.yml
33 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2019, University of Dundee
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | * Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/MANIFEST.in:
--------------------------------------------------------------------------------
1 | graft jupyter_desktop/share
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # UPSTREAMED INTO [jupyterhub/jupyter-remote-desktop-proxy](https://github.com/jupyterhub/jupyter-remote-desktop-proxy). DO NOT USE THIS REPO ANYMORE
2 |
--------------------------------------------------------------------------------
/apt.txt:
--------------------------------------------------------------------------------
1 | dbus-x11
2 | firefox
3 | xfce4
4 | xfce4-panel
5 | xfce4-session
6 | xfce4-settings
7 | xorg
8 | xubuntu-icon-theme
9 |
--------------------------------------------------------------------------------
/environment.yml:
--------------------------------------------------------------------------------
1 | channels:
2 | - conda-forge
3 | dependencies:
4 | - jupyter-server-proxy>=1.4
5 | - pip
6 | - websockify
7 | - pip:
8 | - .
9 |
--------------------------------------------------------------------------------
/jupyter_desktop/__init__.py:
--------------------------------------------------------------------------------
1 | import os
2 | import shlex
3 | from shutil import which
4 | import tempfile
5 |
6 |
7 | HERE = os.path.dirname(os.path.abspath(__file__))
8 |
9 | def setup_desktop():
10 | # make a secure temporary directory for sockets
11 | # This is only readable, writeable & searchable by our uid
12 | sockets_dir = tempfile.mkdtemp()
13 | sockets_path = os.path.join(sockets_dir, 'vnc-socket')
14 | vncserver = which('vncserver')
15 |
16 | if vncserver:
17 | vnc_args = [
18 | vncserver,
19 | ]
20 | socket_args = []
21 | else:
22 | # Use bundled tigervnc
23 | vnc_args = [
24 | os.path.join(HERE, 'share/tigervnc/bin/vncserver'),
25 | '-rfbunixpath', sockets_path,
26 | ]
27 | socket_args = [
28 | '--unix-target', sockets_path
29 | ]
30 |
31 | vnc_command = ' '.join(shlex.quote(p) for p in (vnc_args + [
32 | '-verbose',
33 | '-xstartup', os.path.join(HERE, 'share/xstartup'),
34 | '-geometry', '1680x1050',
35 | '-SecurityTypes', 'None',
36 | '-fg',
37 | ':1',
38 | ]))
39 | return {
40 | 'command': [
41 | 'websockify', '-v',
42 | '--web', os.path.join(HERE, 'share/web/noVNC-1.2.0'),
43 | '--heartbeat', '30',
44 | '5901',
45 | ] + socket_args + [
46 | '--',
47 | '/bin/sh', '-c',
48 | f'cd {os.getcwd()} && {vnc_command}'
49 | ],
50 | 'port': 5901,
51 | 'timeout': 30,
52 | 'mappath': {'/': '/vnc_lite.html'},
53 | 'new_browser_window': True
54 | }
55 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/bin/Xvnc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/bin/Xvnc
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/bin/vncconfig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/bin/vncconfig
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/bin/vncpasswd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/bin/vncpasswd
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/bin/vncviewer:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/bin/vncviewer
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/bin/x0vncserver:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/bin/x0vncserver
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/lib64/swrast_dri.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/lib64/swrast_dri.so
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/applications/vncviewer.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name[bg]=Визуализатор на TigerVNC
3 | Name[cs]=Prohlížeč TigerVNC
4 | Name[da]=TigerVNC-fremviser
5 | Name[de]=TigerVNC-Betrachter
6 | Name[el]=Θεατής TigerVNC
7 | Name[eo]=Rigardilo TigerVNC
8 | Name[es]=Visor TigerVNC
9 | Name[fi]=TigerVNC-selain
10 | Name[fr]=Visionneuse TigerVNC
11 | Name[fur]=Visualizadôr TigerVNC
12 | Name[hu]=TigerVNC megjelenítő
13 | Name[id]=Penampil TigerVNC
14 | Name[nl]=TigerVNC-viewer
15 | Name[pt_BR]=Visualizador TigerVNC
16 | Name[ru]=TigerVNC Viewer
17 | Name[sr]=Прегледач ТигарВНЦ
18 | Name[sv]=VNC-visare
19 | Name[tr]=TigerVNC Görüntüleyici
20 | Name[uk]=Засіб перегляду TigerVNC
21 | Name[vi]=Bộ xem TigerVNC
22 | Name[zh_CN]=TigerVNC 查看器
23 | Name=TigerVNC Viewer
24 | GenericName[cs]=Prohlížeč vzdálené plochy
25 | GenericName[pt_BR]=Visualização de área de trabalho remota
26 | GenericName[ru]=Просмотр удалённых рабочих столов
27 | GenericName[sv]=Fjärrskrivbordsvisare
28 | GenericName[uk]=Засіб перегляду віддаленої стільниці
29 | GenericName[vi]=Trình xem màn hình từ xa
30 | GenericName=Remote Desktop Viewer
31 | Comment[cs]=Připojí se k severu VNC a zobrazí vzdálenou plochu
32 | Comment[da]=Opret forbindelse til VNC-server og vis fjern-skrivebord
33 | Comment[fr]=Se connecter à un serveur VNC et afficher le bureau distant
34 | Comment[pt_BR]=Conecte a um servidor VNC e exiba a área de trabalho remota
35 | Comment[ru]=Подключиться к серверу VNC и показать удалённый рабочий стол
36 | Comment[sv]=Anslut till en VNC-server och visa ett fjärrskrivbord
37 | Comment[uk]=З'єднання із сервером VNC і показ віддаленої стільниці
38 | Comment[vi]=Kết nối đến máy phục vụ VNC và hiển thị màn hình từ xa
39 | Comment=Connect to VNC server and display remote desktop
40 | Exec=/usr/bin/vncviewer
41 | Icon[cs]=tigervnc
42 | Icon[pt_BR]=tigervnc
43 | Icon[ru]=tigervnc
44 | Icon[sv]=tigervnc
45 | Icon[uk]=tigervnc
46 | Icon[vi]=tigervnc
47 | Icon=tigervnc
48 | Terminal=false
49 | Type=Application
50 | StartupWMClass=TigerVNC Viewer: Connection Details
51 | Categories=Network;RemoteAccess;
52 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/icons/hicolor/16x16/apps/tigervnc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/icons/hicolor/16x16/apps/tigervnc.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/icons/hicolor/22x22/apps/tigervnc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/icons/hicolor/22x22/apps/tigervnc.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/icons/hicolor/24x24/apps/tigervnc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/icons/hicolor/24x24/apps/tigervnc.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/icons/hicolor/32x32/apps/tigervnc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/icons/hicolor/32x32/apps/tigervnc.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/icons/hicolor/48x48/apps/tigervnc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/icons/hicolor/48x48/apps/tigervnc.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/bg/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/bg/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/cs/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/cs/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/da/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/da/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/de/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/de/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/el/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/el/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/eo/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/eo/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/es/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/es/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/fi/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/fi/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/fr/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/fr/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/fur/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/fur/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/hu/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/hu/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/id/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/id/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/it/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/it/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/nl/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/nl/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/pl/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/pl/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/pt_BR/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/pt_BR/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/ru/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/ru/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/sk/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/sk/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/sr/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/sr/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/sv/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/sv/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/tr/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/tr/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/uk/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/uk/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/vi/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/vi/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/locale/zh_CN/LC_MESSAGES/tigervnc.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/locale/zh_CN/LC_MESSAGES/tigervnc.mo
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/man/man1/vncpasswd.1:
--------------------------------------------------------------------------------
1 | .TH vncpasswd 1 "" "TigerVNC" "Virtual Network Computing"
2 | .SH NAME
3 | vncpasswd \- change the VNC password
4 | .SH SYNOPSIS
5 | \fBvncpasswd\fR [\fIpasswd-file\fR]
6 | .br
7 | \fBvncpasswd\fR \-f
8 | .SH DESCRIPTION
9 | .B vncpasswd
10 | allows you to set the password used to access VNC desktops. Its default
11 | behavior is to prompt for a VNC password and then store an obfuscated version
12 | of this password to \fIpasswd-file\fR (or to $HOME/.vnc/passwd if no password
13 | file is specified.) The \fBvncserver\fP script runs \fBvncpasswd\fP the first
14 | time you start a VNC desktop, and it invokes \fBXvnc\fP with the appropriate
15 | \fB\-rfbauth\fP option. \fBvncviewer\fP can also be given a password file to
16 | use via the \fB\-passwd\fP option.
17 |
18 | The password must be at least six characters long (unless the \fB\-f\fR
19 | command-line option is used-- see below), and only the first eight
20 | characters are significant. Note that the stored password is \fBnot\fP
21 | encrypted securely - anyone who has access to this file can trivially find out
22 | the plain-text password, so \fBvncpasswd\fP always sets appropriate permissions
23 | (read and write only by the owner.) However, when accessing a VNC desktop, a
24 | challenge-response mechanism is used over the wire making it hard for anyone to
25 | crack the password simply by snooping on the network.
26 |
27 | .SH OPTIONS
28 |
29 | .TP
30 | .B \-f
31 | Filter mode. Read a plain-text password from stdin and write an encrypted
32 | version to stdout. Note that in filter mode, short or even empty passwords
33 | will be silently accepted.
34 |
35 | A view-only password must be separated from the normal password by a newline
36 | character.
37 |
38 |
39 | .SH FILES
40 | .TP
41 | $HOME/.vnc/passwd
42 | Default location of the VNC password file.
43 |
44 | .SH SEE ALSO
45 | .BR vncviewer (1),
46 | .BR vncserver (1),
47 | .BR Xvnc (1)
48 | .BR vncconfig (1),
49 | .br
50 | http://www.tigervnc.org
51 |
52 | .SH AUTHORS
53 | Tristan Richardson, RealVNC Ltd., Antoine Martin, D. R. Commander and others.
54 |
55 | VNC was originally developed by the RealVNC team while at Olivetti
56 | Research Ltd / AT&T Laboratories Cambridge. TightVNC additions were
57 | implemented by Constantin Kaplinsky. Many other people have since
58 | participated in development, testing and support. This manual is part
59 | of the TigerVNC software suite.
60 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/usr/local/share/vnc/classes/VncViewer.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/usr/local/share/vnc/classes/VncViewer.jar
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/usr/local/share/vnc/classes/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/tigervnc/share/usr/local/share/vnc/classes/favicon.ico
--------------------------------------------------------------------------------
/jupyter_desktop/share/tigervnc/share/usr/local/share/vnc/classes/index.vnc:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 | $USER's $DESKTOP desktop ($DISPLAY)
13 |
14 |
20 |
21 | TigerVNC site
22 |
23 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/.eslintignore:
--------------------------------------------------------------------------------
1 | **/xtscancodes.js
2 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es6": true
5 | },
6 | "parserOptions": {
7 | "sourceType": "module"
8 | },
9 | "extends": "eslint:recommended",
10 | "rules": {
11 | // Unsafe or confusing stuff that we forbid
12 |
13 | "no-unused-vars": ["error", { "vars": "all", "args": "none", "ignoreRestSiblings": true }],
14 | "no-constant-condition": ["error", { "checkLoops": false }],
15 | "no-var": "error",
16 | "no-useless-constructor": "error",
17 | "object-shorthand": ["error", "methods", { "avoidQuotes": true }],
18 | "prefer-arrow-callback": "error",
19 | "arrow-body-style": ["error", "as-needed", { "requireReturnForObjectLiteral": false } ],
20 | "arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }],
21 | "arrow-spacing": ["error"],
22 | "no-confusing-arrow": ["error", { "allowParens": true }],
23 |
24 | // Enforced coding style
25 |
26 | "brace-style": ["error", "1tbs", { "allowSingleLine": true }],
27 | "indent": ["error", 4, { "SwitchCase": 1,
28 | "FunctionDeclaration": { "parameters": "first" },
29 | "CallExpression": { "arguments": "first" },
30 | "ArrayExpression": "first",
31 | "ObjectExpression": "first",
32 | "ignoreComments": true }],
33 | "comma-spacing": ["error"],
34 | "comma-style": ["error"],
35 | "curly": ["error", "multi-line"],
36 | "func-call-spacing": ["error"],
37 | "func-names": ["error"],
38 | "func-style": ["error", "declaration", { "allowArrowFunctions": true }],
39 | "key-spacing": ["error"],
40 | "keyword-spacing": ["error"],
41 | "no-trailing-spaces": ["error"],
42 | "semi": ["error"],
43 | "space-before-blocks": ["error"],
44 | "space-before-function-paren": ["error", { "anonymous": "always",
45 | "named": "never",
46 | "asyncArrow": "always" }],
47 | "switch-colon-spacing": ["error"],
48 | "camelcase": ["error", { allow: ["^XK_", "^XF86XK_"] }],
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 |
5 | ---
6 |
7 | **Describe the bug**
8 | A clear and concise description of what the bug is.
9 |
10 | **To Reproduce**
11 | Steps to reproduce the behavior:
12 | 1. Go to '...'
13 | 2. Click on '....'
14 | 3. Scroll down to '....'
15 | 4. See error
16 |
17 | **Expected behavior**
18 | A clear and concise description of what you expected to happen.
19 |
20 | **Screenshots**
21 | If applicable, add screenshots to help explain your problem.
22 |
23 | **Client (please complete the following information):**
24 | - OS: [e.g. iOS]
25 | - Browser: [e.g. chrome, safari]
26 | - Browser version: [e.g. 22]
27 |
28 | **Server (please complete the following information):**
29 | - noVNC version: [e.g. 1.0.0 or git commit id]
30 | - VNC server: [e.g. QEMU, TigerVNC]
31 | - WebSocket proxy: [e.g. websockify]
32 |
33 | **Additional context**
34 | Add any other context about the problem here.
35 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 |
5 | ---
6 |
7 | **Is your feature request related to a problem? Please describe.**
8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9 |
10 | **Describe the solution you'd like**
11 | A clear and concise description of what you want to happen.
12 |
13 | **Describe alternatives you've considered**
14 | A clear and concise description of any alternative solutions or features you've considered.
15 |
16 | **Additional context**
17 | Add any other context or screenshots about the feature request here.
18 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/.github/workflows/deploy.yml:
--------------------------------------------------------------------------------
1 | name: Publish
2 |
3 | on:
4 | release:
5 | types: [published]
6 |
7 | jobs:
8 | npm:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/checkout@v2
12 | - uses: actions/setup-node@v1
13 | with:
14 | # Needs to be explicitly specified for auth to work
15 | registry-url: 'https://registry.npmjs.org'
16 | - run: npm install
17 | - run: npm publish --access public
18 | env:
19 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
20 | if: ${{ !github.event.release.prerelease }}
21 | - run: npm publish --access public --tag beta
22 | env:
23 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
24 | if: ${{ github.event.release.prerelease }}
25 | snap:
26 | runs-on: ubuntu-latest
27 | container: snapcore/snapcraft
28 | steps:
29 | - uses: actions/checkout@v2
30 | - uses: actions/setup-node@v1
31 | - run: npm install
32 | - run: ./utils/use_require.js --clean --as commonjs --with-app
33 | - run: |
34 | cp utils/launch.sh build/launch.sh
35 | cp snap/local/svc_wrapper.sh build/svc_wrapper.sh
36 | - run: |
37 | VERSION=$(grep '"version"' package.json | cut -d '"' -f 4)
38 | echo $VERSION
39 | sed -i "s/@VERSION@/$VERSION/g" snap/snapcraft.yaml
40 | - run: snapcraft
41 | - run: |
42 | mkdir .snapcraft
43 | echo ${SNAPCRAFT_LOGIN} | base64 --decode --ignore-garbage > .snapcraft/snapcraft.cfg
44 | env:
45 | SNAPCRAFT_LOGIN: ${{secrets.SNAPCRAFT_LOGIN}}
46 | - run: snapcraft push --release=stable *.snap
47 | if: ${{ !github.event.release.prerelease }}
48 | - run: snapcraft push --release=beta *.snap
49 | if: ${{ github.event.release.prerelease }}
50 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/.github/workflows/lint.yml:
--------------------------------------------------------------------------------
1 | name: Lint
2 |
3 | on: [push, pull_request]
4 |
5 | jobs:
6 | eslint:
7 | runs-on: ubuntu-latest
8 | steps:
9 | - uses: actions/checkout@v2
10 | - uses: actions/setup-node@v1
11 | - run: npm install
12 | - run: npm run lint
13 | html:
14 | runs-on: ubuntu-latest
15 | steps:
16 | - uses: actions/checkout@v2
17 | - uses: actions/setup-node@v1
18 | - run: npm install
19 | - run: git ls-tree --name-only -r HEAD | grep -E "[.](html|css)$" | xargs ./utils/validate
20 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: Test
2 |
3 | on: [push, pull_request]
4 |
5 | jobs:
6 | test:
7 | strategy:
8 | matrix:
9 | os:
10 | - ubuntu-latest
11 | - windows-latest
12 | browser:
13 | - ChromeHeadless
14 | - FirefoxHeadless
15 | include:
16 | - os: macos-latest
17 | browser: Safari
18 | - os: windows-latest
19 | browser: EdgeHeadless
20 | - os: windows-latest
21 | browser: IE
22 | fail-fast: false
23 | runs-on: ${{ matrix.os }}
24 | steps:
25 | - uses: actions/checkout@v2
26 | - uses: actions/setup-node@v1
27 | - run: npm install
28 | - run: npm run test
29 | env:
30 | TEST_BROWSER_NAME: ${{ matrix.browser }}
31 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/.gitignore:
--------------------------------------------------------------------------------
1 | *.pyc
2 | *.o
3 | tests/data_*.js
4 | utils/rebind.so
5 | utils/websockify
6 | /node_modules
7 | /build
8 | /lib
9 | recordings
10 | *.swp
11 | *~
12 | noVNC-*.tgz
13 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/.gitmodules:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/.gitmodules
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/AUTHORS:
--------------------------------------------------------------------------------
1 | maintainers:
2 | - Joel Martin (@kanaka)
3 | - Solly Ross (@directxman12)
4 | - Samuel Mannehed for Cendio AB (@samhed)
5 | - Pierre Ossman for Cendio AB (@CendioOssman)
6 | maintainersEmeritus:
7 | - @astrand
8 | contributors:
9 | # There are a bunch of people that should be here.
10 | # If you want to be on this list, feel free send a PR
11 | # to add yourself.
12 | - jalf
13 | - NTT corp.
14 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/LICENSE.txt:
--------------------------------------------------------------------------------
1 | noVNC is Copyright (C) 2019 The noVNC Authors
2 | (./AUTHORS)
3 |
4 | The noVNC core library files are licensed under the MPL 2.0 (Mozilla
5 | Public License 2.0). The noVNC core library is composed of the
6 | Javascript code necessary for full noVNC operation. This includes (but
7 | is not limited to):
8 |
9 | core/**/*.js
10 | app/*.js
11 | test/playback.js
12 |
13 | The HTML, CSS, font and images files that included with the noVNC
14 | source distibution (or repository) are not considered part of the
15 | noVNC core library and are licensed under more permissive licenses.
16 | The intent is to allow easy integration of noVNC into existing web
17 | sites and web applications.
18 |
19 | The HTML, CSS, font and image files are licensed as follows:
20 |
21 | *.html : 2-Clause BSD license
22 |
23 | app/styles/*.css : 2-Clause BSD license
24 |
25 | app/styles/Orbitron* : SIL Open Font License 1.1
26 | (Copyright 2009 Matt McInerney)
27 |
28 | app/images/ : Creative Commons Attribution-ShareAlike
29 | http://creativecommons.org/licenses/by-sa/3.0/
30 |
31 | Some portions of noVNC are copyright to their individual authors.
32 | Please refer to the individual source files and/or to the noVNC commit
33 | history: https://github.com/novnc/noVNC/commits/master
34 |
35 | The are several files and projects that have been incorporated into
36 | the noVNC core library. Here is a list of those files and the original
37 | licenses (all MPL 2.0 compatible):
38 |
39 | core/base64.js : MPL 2.0
40 |
41 | core/des.js : Various BSD style licenses
42 |
43 | vendor/pako/ : MIT
44 |
45 | vendor/browser-es-module-loader/src/ : MIT
46 |
47 | vendor/browser-es-module-loader/dist/ : Various BSD style licenses
48 |
49 | vendor/promise.js : MIT
50 |
51 | Any other files not mentioned above are typically marked with
52 | a copyright/license header at the top of the file. The default noVNC
53 | license is MPL-2.0.
54 |
55 | The following license texts are included:
56 |
57 | docs/LICENSE.MPL-2.0
58 | docs/LICENSE.OFL-1.1
59 | docs/LICENSE.BSD-3-Clause (New BSD)
60 | docs/LICENSE.BSD-2-Clause (Simplified BSD / FreeBSD)
61 | vendor/pako/LICENSE (MIT)
62 |
63 | Or alternatively the license texts may be found here:
64 |
65 | http://www.mozilla.org/MPL/2.0/
66 | http://scripts.sil.org/OFL
67 | http://en.wikipedia.org/wiki/BSD_licenses
68 | https://opensource.org/licenses/MIT
69 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/error-handler.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2019 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | */
8 |
9 | // NB: this should *not* be included as a module until we have
10 | // native support in the browsers, so that our error handler
11 | // can catch script-loading errors.
12 |
13 | // No ES6 can be used in this file since it's used for the translation
14 | /* eslint-disable prefer-arrow-callback */
15 |
16 | (function _scope() {
17 | "use strict";
18 |
19 | // Fallback for all uncought errors
20 | function handleError(event, err) {
21 | try {
22 | const msg = document.getElementById('noVNC_fallback_errormsg');
23 |
24 | // Only show the initial error
25 | if (msg.hasChildNodes()) {
26 | return false;
27 | }
28 |
29 | let div = document.createElement("div");
30 | div.classList.add('noVNC_message');
31 | div.appendChild(document.createTextNode(event.message));
32 | msg.appendChild(div);
33 |
34 | if (event.filename) {
35 | div = document.createElement("div");
36 | div.className = 'noVNC_location';
37 | let text = event.filename;
38 | if (event.lineno !== undefined) {
39 | text += ":" + event.lineno;
40 | if (event.colno !== undefined) {
41 | text += ":" + event.colno;
42 | }
43 | }
44 | div.appendChild(document.createTextNode(text));
45 | msg.appendChild(div);
46 | }
47 |
48 | if (err && err.stack) {
49 | div = document.createElement("div");
50 | div.className = 'noVNC_stack';
51 | div.appendChild(document.createTextNode(err.stack));
52 | msg.appendChild(div);
53 | }
54 |
55 | document.getElementById('noVNC_fallback_error')
56 | .classList.add("noVNC_open");
57 | } catch (exc) {
58 | document.write("noVNC encountered an error.");
59 | }
60 | // Don't return true since this would prevent the error
61 | // from being printed to the browser console.
62 | return false;
63 | }
64 | window.addEventListener('error', function onerror(evt) { handleError(evt, evt.error); });
65 | window.addEventListener('unhandledrejection', function onreject(evt) { handleError(evt.reason, evt.reason); });
66 | })();
67 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/alt.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
93 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/connect.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
97 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/ctrlaltdel.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
101 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/error.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
82 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/expander.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
70 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/fullscreen.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
94 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/handle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
83 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/Makefile:
--------------------------------------------------------------------------------
1 | ICONS := \
2 | novnc-16x16.png \
3 | novnc-24x24.png \
4 | novnc-32x32.png \
5 | novnc-48x48.png \
6 | novnc-64x64.png
7 |
8 | ANDROID_LAUNCHER := \
9 | novnc-48x48.png \
10 | novnc-72x72.png \
11 | novnc-96x96.png \
12 | novnc-144x144.png \
13 | novnc-192x192.png
14 |
15 | IPHONE_LAUNCHER := \
16 | novnc-60x60.png \
17 | novnc-120x120.png
18 |
19 | IPAD_LAUNCHER := \
20 | novnc-76x76.png \
21 | novnc-152x152.png
22 |
23 | ALL_ICONS := $(ICONS) $(ANDROID_LAUNCHER) $(IPHONE_LAUNCHER) $(IPAD_LAUNCHER)
24 |
25 | all: $(ALL_ICONS)
26 |
27 | novnc-16x16.png: novnc-icon-sm.svg
28 | convert -density 90 \
29 | -background transparent "$<" "$@"
30 | novnc-24x24.png: novnc-icon-sm.svg
31 | convert -density 135 \
32 | -background transparent "$<" "$@"
33 | novnc-32x32.png: novnc-icon-sm.svg
34 | convert -density 180 \
35 | -background transparent "$<" "$@"
36 |
37 | novnc-%.png: novnc-icon.svg
38 | convert -density $$[`echo $* | cut -d x -f 1` * 90 / 48] \
39 | -background transparent "$<" "$@"
40 |
41 | clean:
42 | rm -f *.png
43 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-120x120.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-144x144.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-152x152.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-16x16.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-192x192.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-24x24.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-32x32.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-48x48.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-60x60.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-64x64.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-72x72.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-76x76.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/images/icons/novnc-96x96.png
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/info.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
82 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/settings.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
77 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/tab.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
87 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/warning.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
82 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/images/windows.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/README:
--------------------------------------------------------------------------------
1 | DO NOT MODIFY THE FILES IN THIS FOLDER, THEY ARE AUTOMATICALLY GENERATED FROM THE PO-FILES.
2 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/cs.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "Připojení...",
3 | "Disconnecting...": "Odpojení...",
4 | "Reconnecting...": "Obnova připojení...",
5 | "Internal error": "Vnitřní chyba",
6 | "Must set host": "Hostitel musí být nastavení",
7 | "Connected (encrypted) to ": "Připojení (šifrované) k ",
8 | "Connected (unencrypted) to ": "Připojení (nešifrované) k ",
9 | "Something went wrong, connection is closed": "Něco se pokazilo, odpojeno",
10 | "Failed to connect to server": "Chyba připojení k serveru",
11 | "Disconnected": "Odpojeno",
12 | "New connection has been rejected with reason: ": "Nové připojení bylo odmítnuto s odůvodněním: ",
13 | "New connection has been rejected": "Nové připojení bylo odmítnuto",
14 | "Password is required": "Je vyžadováno heslo",
15 | "noVNC encountered an error:": "noVNC narazilo na chybu:",
16 | "Hide/Show the control bar": "Skrýt/zobrazit ovládací panel",
17 | "Move/Drag Viewport": "Přesunout/přetáhnout výřez",
18 | "viewport drag": "přesun výřezu",
19 | "Active Mouse Button": "Aktivní tlačítka myši",
20 | "No mousebutton": "Žádné",
21 | "Left mousebutton": "Levé tlačítko myši",
22 | "Middle mousebutton": "Prostřední tlačítko myši",
23 | "Right mousebutton": "Pravé tlačítko myši",
24 | "Keyboard": "Klávesnice",
25 | "Show Keyboard": "Zobrazit klávesnici",
26 | "Extra keys": "Extra klávesy",
27 | "Show Extra Keys": "Zobrazit extra klávesy",
28 | "Ctrl": "Ctrl",
29 | "Toggle Ctrl": "Přepnout Ctrl",
30 | "Alt": "Alt",
31 | "Toggle Alt": "Přepnout Alt",
32 | "Send Tab": "Odeslat tabulátor",
33 | "Tab": "Tab",
34 | "Esc": "Esc",
35 | "Send Escape": "Odeslat Esc",
36 | "Ctrl+Alt+Del": "Ctrl+Alt+Del",
37 | "Send Ctrl-Alt-Del": "Poslat Ctrl-Alt-Del",
38 | "Shutdown/Reboot": "Vypnutí/Restart",
39 | "Shutdown/Reboot...": "Vypnutí/Restart...",
40 | "Power": "Napájení",
41 | "Shutdown": "Vypnout",
42 | "Reboot": "Restart",
43 | "Reset": "Reset",
44 | "Clipboard": "Schránka",
45 | "Clear": "Vymazat",
46 | "Fullscreen": "Celá obrazovka",
47 | "Settings": "Nastavení",
48 | "Shared Mode": "Sdílený režim",
49 | "View Only": "Pouze prohlížení",
50 | "Clip to Window": "Přizpůsobit oknu",
51 | "Scaling Mode:": "Přizpůsobení velikosti",
52 | "None": "Žádné",
53 | "Local Scaling": "Místní",
54 | "Remote Resizing": "Vzdálené",
55 | "Advanced": "Pokročilé",
56 | "Repeater ID:": "ID opakovače",
57 | "WebSocket": "WebSocket",
58 | "Encrypt": "Šifrování:",
59 | "Host:": "Hostitel:",
60 | "Port:": "Port:",
61 | "Path:": "Cesta",
62 | "Automatic Reconnect": "Automatická obnova připojení",
63 | "Reconnect Delay (ms):": "Zpoždění připojení (ms)",
64 | "Show Dot when No Cursor": "Tečka místo chybějícího kurzoru myši",
65 | "Logging:": "Logování:",
66 | "Disconnect": "Odpojit",
67 | "Connect": "Připojit",
68 | "Password:": "Heslo",
69 | "Send Password": "Odeslat heslo",
70 | "Cancel": "Zrušit"
71 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/de.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "Verbinden...",
3 | "Disconnecting...": "Verbindung trennen...",
4 | "Reconnecting...": "Verbindung wiederherstellen...",
5 | "Internal error": "Interner Fehler",
6 | "Must set host": "Richten Sie den Server ein",
7 | "Connected (encrypted) to ": "Verbunden mit (verschlüsselt) ",
8 | "Connected (unencrypted) to ": "Verbunden mit (unverschlüsselt) ",
9 | "Something went wrong, connection is closed": "Etwas lief schief, Verbindung wurde getrennt",
10 | "Disconnected": "Verbindung zum Server getrennt",
11 | "New connection has been rejected with reason: ": "Verbindung wurde aus folgendem Grund abgelehnt: ",
12 | "New connection has been rejected": "Verbindung wurde abgelehnt",
13 | "Password is required": "Passwort ist erforderlich",
14 | "noVNC encountered an error:": "Ein Fehler ist aufgetreten:",
15 | "Hide/Show the control bar": "Kontrollleiste verstecken/anzeigen",
16 | "Move/Drag Viewport": "Ansichtsfenster verschieben/ziehen",
17 | "viewport drag": "Ansichtsfenster ziehen",
18 | "Active Mouse Button": "Aktive Maustaste",
19 | "No mousebutton": "Keine Maustaste",
20 | "Left mousebutton": "Linke Maustaste",
21 | "Middle mousebutton": "Mittlere Maustaste",
22 | "Right mousebutton": "Rechte Maustaste",
23 | "Keyboard": "Tastatur",
24 | "Show Keyboard": "Tastatur anzeigen",
25 | "Extra keys": "Zusatztasten",
26 | "Show Extra Keys": "Zusatztasten anzeigen",
27 | "Ctrl": "Strg",
28 | "Toggle Ctrl": "Strg umschalten",
29 | "Alt": "Alt",
30 | "Toggle Alt": "Alt umschalten",
31 | "Send Tab": "Tab senden",
32 | "Tab": "Tab",
33 | "Esc": "Esc",
34 | "Send Escape": "Escape senden",
35 | "Ctrl+Alt+Del": "Strg+Alt+Entf",
36 | "Send Ctrl-Alt-Del": "Strg+Alt+Entf senden",
37 | "Shutdown/Reboot": "Herunterfahren/Neustarten",
38 | "Shutdown/Reboot...": "Herunterfahren/Neustarten...",
39 | "Power": "Energie",
40 | "Shutdown": "Herunterfahren",
41 | "Reboot": "Neustarten",
42 | "Reset": "Zurücksetzen",
43 | "Clipboard": "Zwischenablage",
44 | "Clear": "Löschen",
45 | "Fullscreen": "Vollbild",
46 | "Settings": "Einstellungen",
47 | "Shared Mode": "Geteilter Modus",
48 | "View Only": "Nur betrachten",
49 | "Clip to Window": "Auf Fenster begrenzen",
50 | "Scaling Mode:": "Skalierungsmodus:",
51 | "None": "Keiner",
52 | "Local Scaling": "Lokales skalieren",
53 | "Remote Resizing": "Serverseitiges skalieren",
54 | "Advanced": "Erweitert",
55 | "Repeater ID:": "Repeater ID:",
56 | "WebSocket": "WebSocket",
57 | "Encrypt": "Verschlüsselt",
58 | "Host:": "Server:",
59 | "Port:": "Port:",
60 | "Path:": "Pfad:",
61 | "Automatic Reconnect": "Automatisch wiederverbinden",
62 | "Reconnect Delay (ms):": "Wiederverbindungsverzögerung (ms):",
63 | "Logging:": "Protokollierung:",
64 | "Disconnect": "Verbindung trennen",
65 | "Connect": "Verbinden",
66 | "Password:": "Passwort:",
67 | "Cancel": "Abbrechen",
68 | "Canvas not supported.": "Canvas nicht unterstützt."
69 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/el.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "Συνδέεται...",
3 | "Disconnecting...": "Aποσυνδέεται...",
4 | "Reconnecting...": "Επανασυνδέεται...",
5 | "Internal error": "Εσωτερικό σφάλμα",
6 | "Must set host": "Πρέπει να οριστεί ο διακομιστής",
7 | "Connected (encrypted) to ": "Συνδέθηκε (κρυπτογραφημένα) με το ",
8 | "Connected (unencrypted) to ": "Συνδέθηκε (μη κρυπτογραφημένα) με το ",
9 | "Something went wrong, connection is closed": "Κάτι πήγε στραβά, η σύνδεση διακόπηκε",
10 | "Disconnected": "Αποσυνδέθηκε",
11 | "New connection has been rejected with reason: ": "Η νέα σύνδεση απορρίφθηκε διότι: ",
12 | "New connection has been rejected": "Η νέα σύνδεση απορρίφθηκε ",
13 | "Password is required": "Απαιτείται ο κωδικός πρόσβασης",
14 | "noVNC encountered an error:": "το noVNC αντιμετώπισε ένα σφάλμα:",
15 | "Hide/Show the control bar": "Απόκρυψη/Εμφάνιση γραμμής ελέγχου",
16 | "Move/Drag Viewport": "Μετακίνηση/Σύρσιμο Θεατού πεδίου",
17 | "viewport drag": "σύρσιμο θεατού πεδίου",
18 | "Active Mouse Button": "Ενεργό Πλήκτρο Ποντικιού",
19 | "No mousebutton": "Χωρίς Πλήκτρο Ποντικιού",
20 | "Left mousebutton": "Αριστερό Πλήκτρο Ποντικιού",
21 | "Middle mousebutton": "Μεσαίο Πλήκτρο Ποντικιού",
22 | "Right mousebutton": "Δεξί Πλήκτρο Ποντικιού",
23 | "Keyboard": "Πληκτρολόγιο",
24 | "Show Keyboard": "Εμφάνιση Πληκτρολογίου",
25 | "Extra keys": "Επιπλέον πλήκτρα",
26 | "Show Extra Keys": "Εμφάνιση Επιπλέον Πλήκτρων",
27 | "Ctrl": "Ctrl",
28 | "Toggle Ctrl": "Εναλλαγή Ctrl",
29 | "Alt": "Alt",
30 | "Toggle Alt": "Εναλλαγή Alt",
31 | "Send Tab": "Αποστολή Tab",
32 | "Tab": "Tab",
33 | "Esc": "Esc",
34 | "Send Escape": "Αποστολή Escape",
35 | "Ctrl+Alt+Del": "Ctrl+Alt+Del",
36 | "Send Ctrl-Alt-Del": "Αποστολή Ctrl-Alt-Del",
37 | "Shutdown/Reboot": "Κλείσιμο/Επανεκκίνηση",
38 | "Shutdown/Reboot...": "Κλείσιμο/Επανεκκίνηση...",
39 | "Power": "Απενεργοποίηση",
40 | "Shutdown": "Κλείσιμο",
41 | "Reboot": "Επανεκκίνηση",
42 | "Reset": "Επαναφορά",
43 | "Clipboard": "Πρόχειρο",
44 | "Clear": "Καθάρισμα",
45 | "Fullscreen": "Πλήρης Οθόνη",
46 | "Settings": "Ρυθμίσεις",
47 | "Shared Mode": "Κοινόχρηστη Λειτουργία",
48 | "View Only": "Μόνο Θέαση",
49 | "Clip to Window": "Αποκοπή στο όριο του Παράθυρου",
50 | "Scaling Mode:": "Λειτουργία Κλιμάκωσης:",
51 | "None": "Καμία",
52 | "Local Scaling": "Τοπική Κλιμάκωση",
53 | "Remote Resizing": "Απομακρυσμένη Αλλαγή μεγέθους",
54 | "Advanced": "Για προχωρημένους",
55 | "Repeater ID:": "Repeater ID:",
56 | "WebSocket": "WebSocket",
57 | "Encrypt": "Κρυπτογράφηση",
58 | "Host:": "Όνομα διακομιστή:",
59 | "Port:": "Πόρτα διακομιστή:",
60 | "Path:": "Διαδρομή:",
61 | "Automatic Reconnect": "Αυτόματη επανασύνδεση",
62 | "Reconnect Delay (ms):": "Καθυστέρηση επανασύνδεσης (ms):",
63 | "Logging:": "Καταγραφή:",
64 | "Disconnect": "Αποσύνδεση",
65 | "Connect": "Σύνδεση",
66 | "Password:": "Κωδικός Πρόσβασης:",
67 | "Cancel": "Ακύρωση",
68 | "Canvas not supported.": "Δεν υποστηρίζεται το στοιχείο Canvas"
69 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/es.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "Conectando...",
3 | "Connected (encrypted) to ": "Conectado (con encriptación) a",
4 | "Connected (unencrypted) to ": "Conectado (sin encriptación) a",
5 | "Disconnecting...": "Desconectando...",
6 | "Disconnected": "Desconectado",
7 | "Must set host": "Debes configurar el host",
8 | "Reconnecting...": "Reconectando...",
9 | "Password is required": "Contraseña es obligatoria",
10 | "Disconnect timeout": "Tiempo de desconexión agotado",
11 | "noVNC encountered an error:": "noVNC ha encontrado un error:",
12 | "Hide/Show the control bar": "Ocultar/Mostrar la barra de control",
13 | "Move/Drag Viewport": "Mover/Arrastrar la ventana",
14 | "viewport drag": "Arrastrar la ventana",
15 | "Active Mouse Button": "Botón activo del ratón",
16 | "No mousebutton": "Ningún botón del ratón",
17 | "Left mousebutton": "Botón izquierdo del ratón",
18 | "Middle mousebutton": "Botón central del ratón",
19 | "Right mousebutton": "Botón derecho del ratón",
20 | "Keyboard": "Teclado",
21 | "Show Keyboard": "Mostrar teclado",
22 | "Extra keys": "Teclas adicionales",
23 | "Show Extra Keys": "Mostrar Teclas Adicionales",
24 | "Ctrl": "Ctrl",
25 | "Toggle Ctrl": "Pulsar/Soltar Ctrl",
26 | "Alt": "Alt",
27 | "Toggle Alt": "Pulsar/Soltar Alt",
28 | "Send Tab": "Enviar Tabulación",
29 | "Tab": "Tabulación",
30 | "Esc": "Esc",
31 | "Send Escape": "Enviar Escape",
32 | "Ctrl+Alt+Del": "Ctrl+Alt+Del",
33 | "Send Ctrl-Alt-Del": "Enviar Ctrl+Alt+Del",
34 | "Shutdown/Reboot": "Apagar/Reiniciar",
35 | "Shutdown/Reboot...": "Apagar/Reiniciar...",
36 | "Power": "Encender",
37 | "Shutdown": "Apagar",
38 | "Reboot": "Reiniciar",
39 | "Reset": "Restablecer",
40 | "Clipboard": "Portapapeles",
41 | "Clear": "Vaciar",
42 | "Fullscreen": "Pantalla Completa",
43 | "Settings": "Configuraciones",
44 | "Shared Mode": "Modo Compartido",
45 | "View Only": "Solo visualización",
46 | "Clip to Window": "Recortar al tamaño de la ventana",
47 | "Scaling Mode:": "Modo de escalado:",
48 | "None": "Ninguno",
49 | "Local Scaling": "Escalado Local",
50 | "Local Downscaling": "Reducción de escala local",
51 | "Remote Resizing": "Cambio de tamaño remoto",
52 | "Advanced": "Avanzado",
53 | "Local Cursor": "Cursor Local",
54 | "Repeater ID:": "ID del Repetidor",
55 | "WebSocket": "WebSocket",
56 | "Encrypt": "",
57 | "Host:": "Host",
58 | "Port:": "Puesto",
59 | "Path:": "Ruta",
60 | "Automatic Reconnect": "Reconexión automática",
61 | "Reconnect Delay (ms):": "Retraso en la reconexión (ms)",
62 | "Logging:": "Logging",
63 | "Disconnect": "Desconectar",
64 | "Connect": "Conectar",
65 | "Password:": "Contraseña",
66 | "Cancel": "Cancelar",
67 | "Canvas not supported.": "Canvas no está soportado"
68 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/ja.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "接続しています...",
3 | "Disconnecting...": "切断しています...",
4 | "Reconnecting...": "再接続しています...",
5 | "Internal error": "内部エラー",
6 | "Must set host": "ホストを設定する必要があります",
7 | "Connected (encrypted) to ": "接続しました (暗号化済み): ",
8 | "Connected (unencrypted) to ": "接続しました (暗号化されていません): ",
9 | "Something went wrong, connection is closed": "何かが問題で、接続が閉じられました",
10 | "Failed to connect to server": "サーバーへの接続に失敗しました",
11 | "Disconnected": "切断しました",
12 | "New connection has been rejected with reason: ": "新規接続は次の理由で拒否されました: ",
13 | "New connection has been rejected": "新規接続は拒否されました",
14 | "Password is required": "パスワードが必要です",
15 | "noVNC encountered an error:": "noVNC でエラーが発生しました:",
16 | "Hide/Show the control bar": "コントロールバーを隠す/表示する",
17 | "Move/Drag Viewport": "ビューポートを移動/ドラッグ",
18 | "viewport drag": "ビューポートをドラッグ",
19 | "Active Mouse Button": "アクティブなマウスボタン",
20 | "No mousebutton": "マウスボタンなし",
21 | "Left mousebutton": "左マウスボタン",
22 | "Middle mousebutton": "中マウスボタン",
23 | "Right mousebutton": "右マウスボタン",
24 | "Keyboard": "キーボード",
25 | "Show Keyboard": "キーボードを表示",
26 | "Extra keys": "追加キー",
27 | "Show Extra Keys": "追加キーを表示",
28 | "Ctrl": "Ctrl",
29 | "Toggle Ctrl": "Ctrl キーを切り替え",
30 | "Alt": "Alt",
31 | "Toggle Alt": "Alt キーを切り替え",
32 | "Toggle Windows": "Windows キーを切り替え",
33 | "Windows": "Windows",
34 | "Send Tab": "Tab キーを送信",
35 | "Tab": "Tab",
36 | "Esc": "Esc",
37 | "Send Escape": "Escape キーを送信",
38 | "Ctrl+Alt+Del": "Ctrl+Alt+Del",
39 | "Send Ctrl-Alt-Del": "Ctrl-Alt-Del を送信",
40 | "Shutdown/Reboot": "シャットダウン/再起動",
41 | "Shutdown/Reboot...": "シャットダウン/再起動...",
42 | "Power": "電源",
43 | "Shutdown": "シャットダウン",
44 | "Reboot": "再起動",
45 | "Reset": "リセット",
46 | "Clipboard": "クリップボード",
47 | "Clear": "クリア",
48 | "Fullscreen": "全画面表示",
49 | "Settings": "設定",
50 | "Shared Mode": "共有モード",
51 | "View Only": "表示のみ",
52 | "Clip to Window": "ウィンドウにクリップ",
53 | "Scaling Mode:": "スケーリングモード:",
54 | "None": "なし",
55 | "Local Scaling": "ローカルスケーリング",
56 | "Remote Resizing": "リモートでリサイズ",
57 | "Advanced": "高度",
58 | "Repeater ID:": "リピーター ID:",
59 | "WebSocket": "WebSocket",
60 | "Encrypt": "暗号化",
61 | "Host:": "ホスト:",
62 | "Port:": "ポート:",
63 | "Path:": "パス:",
64 | "Automatic Reconnect": "自動再接続",
65 | "Reconnect Delay (ms):": "再接続する遅延 (ミリ秒):",
66 | "Show Dot when No Cursor": "カーソルがないときにドットを表示",
67 | "Logging:": "ロギング:",
68 | "Disconnect": "切断",
69 | "Connect": "接続",
70 | "Password:": "パスワード:",
71 | "Send Password": "パスワードを送信",
72 | "Cancel": "キャンセル"
73 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/ko.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "연결중...",
3 | "Disconnecting...": "연결 해제중...",
4 | "Reconnecting...": "재연결중...",
5 | "Internal error": "내부 오류",
6 | "Must set host": "호스트는 설정되어야 합니다.",
7 | "Connected (encrypted) to ": "다음과 (암호화되어) 연결되었습니다:",
8 | "Connected (unencrypted) to ": "다음과 (암호화 없이) 연결되었습니다:",
9 | "Something went wrong, connection is closed": "무언가 잘못되었습니다, 연결이 닫혔습니다.",
10 | "Failed to connect to server": "서버에 연결하지 못했습니다.",
11 | "Disconnected": "연결이 해제되었습니다.",
12 | "New connection has been rejected with reason: ": "새 연결이 다음 이유로 거부되었습니다:",
13 | "New connection has been rejected": "새 연결이 거부되었습니다.",
14 | "Password is required": "비밀번호가 필요합니다.",
15 | "noVNC encountered an error:": "noVNC에 오류가 발생했습니다:",
16 | "Hide/Show the control bar": "컨트롤 바 숨기기/보이기",
17 | "Move/Drag Viewport": "움직이기/드래그 뷰포트",
18 | "viewport drag": "뷰포트 드래그",
19 | "Active Mouse Button": "마우스 버튼 활성화",
20 | "No mousebutton": "마우스 버튼 없음",
21 | "Left mousebutton": "왼쪽 마우스 버튼",
22 | "Middle mousebutton": "중간 마우스 버튼",
23 | "Right mousebutton": "오른쪽 마우스 버튼",
24 | "Keyboard": "키보드",
25 | "Show Keyboard": "키보드 보이기",
26 | "Extra keys": "기타 키들",
27 | "Show Extra Keys": "기타 키들 보이기",
28 | "Ctrl": "Ctrl",
29 | "Toggle Ctrl": "Ctrl 켜기/끄기",
30 | "Alt": "Alt",
31 | "Toggle Alt": "Alt 켜기/끄기",
32 | "Send Tab": "Tab 보내기",
33 | "Tab": "Tab",
34 | "Esc": "Esc",
35 | "Send Escape": "Esc 보내기",
36 | "Ctrl+Alt+Del": "Ctrl+Alt+Del",
37 | "Send Ctrl-Alt-Del": "Ctrl+Alt+Del 보내기",
38 | "Shutdown/Reboot": "셧다운/리붓",
39 | "Shutdown/Reboot...": "셧다운/리붓...",
40 | "Power": "전원",
41 | "Shutdown": "셧다운",
42 | "Reboot": "리붓",
43 | "Reset": "리셋",
44 | "Clipboard": "클립보드",
45 | "Clear": "지우기",
46 | "Fullscreen": "전체화면",
47 | "Settings": "설정",
48 | "Shared Mode": "공유 모드",
49 | "View Only": "보기 전용",
50 | "Clip to Window": "창에 클립",
51 | "Scaling Mode:": "스케일링 모드:",
52 | "None": "없음",
53 | "Local Scaling": "로컬 스케일링",
54 | "Remote Resizing": "원격 크기 조절",
55 | "Advanced": "고급",
56 | "Repeater ID:": "중계 ID",
57 | "WebSocket": "웹소켓",
58 | "Encrypt": "암호화",
59 | "Host:": "호스트:",
60 | "Port:": "포트:",
61 | "Path:": "위치:",
62 | "Automatic Reconnect": "자동 재연결",
63 | "Reconnect Delay (ms):": "재연결 지연 시간 (ms)",
64 | "Logging:": "로깅",
65 | "Disconnect": "연결 해제",
66 | "Connect": "연결",
67 | "Password:": "비밀번호:",
68 | "Send Password": "비밀번호 전송",
69 | "Cancel": "취소"
70 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/nl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "Verbinden...",
3 | "Disconnecting...": "Verbinding verbreken...",
4 | "Reconnecting...": "Opnieuw verbinding maken...",
5 | "Internal error": "Interne fout",
6 | "Must set host": "Host moeten worden ingesteld",
7 | "Connected (encrypted) to ": "Verbonden (versleuteld) met ",
8 | "Connected (unencrypted) to ": "Verbonden (onversleuteld) met ",
9 | "Something went wrong, connection is closed": "Er iets fout gelopen, verbinding werd verbroken",
10 | "Failed to connect to server": "Verbinding maken met server is mislukt",
11 | "Disconnected": "Verbinding verbroken",
12 | "New connection has been rejected with reason: ": "Nieuwe verbinding is geweigerd omwille van de volgende reden: ",
13 | "New connection has been rejected": "Nieuwe verbinding is geweigerd",
14 | "Password is required": "Wachtwoord is vereist",
15 | "noVNC encountered an error:": "noVNC heeft een fout bemerkt:",
16 | "Hide/Show the control bar": "Verberg/Toon de bedieningsbalk",
17 | "Move/Drag Viewport": "Verplaats/Versleep Kijkvenster",
18 | "viewport drag": "kijkvenster slepen",
19 | "Active Mouse Button": "Actieve Muisknop",
20 | "No mousebutton": "Geen muisknop",
21 | "Left mousebutton": "Linker muisknop",
22 | "Middle mousebutton": "Middelste muisknop",
23 | "Right mousebutton": "Rechter muisknop",
24 | "Keyboard": "Toetsenbord",
25 | "Show Keyboard": "Toon Toetsenbord",
26 | "Extra keys": "Extra toetsen",
27 | "Show Extra Keys": "Toon Extra Toetsen",
28 | "Ctrl": "Ctrl",
29 | "Toggle Ctrl": "Ctrl omschakelen",
30 | "Alt": "Alt",
31 | "Toggle Alt": "Alt omschakelen",
32 | "Toggle Windows": "Windows omschakelen",
33 | "Windows": "Windows",
34 | "Send Tab": "Tab Sturen",
35 | "Tab": "Tab",
36 | "Esc": "Esc",
37 | "Send Escape": "Escape Sturen",
38 | "Ctrl+Alt+Del": "Ctrl-Alt-Del",
39 | "Send Ctrl-Alt-Del": "Ctrl-Alt-Del Sturen",
40 | "Shutdown/Reboot": "Uitschakelen/Herstarten",
41 | "Shutdown/Reboot...": "Uitschakelen/Herstarten...",
42 | "Power": "Systeem",
43 | "Shutdown": "Uitschakelen",
44 | "Reboot": "Herstarten",
45 | "Reset": "Resetten",
46 | "Clipboard": "Klembord",
47 | "Clear": "Wissen",
48 | "Fullscreen": "Volledig Scherm",
49 | "Settings": "Instellingen",
50 | "Shared Mode": "Gedeelde Modus",
51 | "View Only": "Alleen Kijken",
52 | "Clip to Window": "Randen buiten venster afsnijden",
53 | "Scaling Mode:": "Schaalmodus:",
54 | "None": "Geen",
55 | "Local Scaling": "Lokaal Schalen",
56 | "Remote Resizing": "Op Afstand Formaat Wijzigen",
57 | "Advanced": "Geavanceerd",
58 | "Repeater ID:": "Repeater ID:",
59 | "WebSocket": "WebSocket",
60 | "Encrypt": "Versleutelen",
61 | "Host:": "Host:",
62 | "Port:": "Poort:",
63 | "Path:": "Pad:",
64 | "Automatic Reconnect": "Automatisch Opnieuw Verbinden",
65 | "Reconnect Delay (ms):": "Vertraging voor Opnieuw Verbinden (ms):",
66 | "Show Dot when No Cursor": "Geef stip weer indien geen cursor",
67 | "Logging:": "Logmeldingen:",
68 | "Disconnect": "Verbinding verbreken",
69 | "Connect": "Verbinden",
70 | "Password:": "Wachtwoord:",
71 | "Send Password": "Verzend Wachtwoord:",
72 | "Cancel": "Annuleren"
73 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/pl.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "Łączenie...",
3 | "Disconnecting...": "Rozłączanie...",
4 | "Reconnecting...": "Łączenie...",
5 | "Internal error": "Błąd wewnętrzny",
6 | "Must set host": "Host i port są wymagane",
7 | "Connected (encrypted) to ": "Połączenie (szyfrowane) z ",
8 | "Connected (unencrypted) to ": "Połączenie (nieszyfrowane) z ",
9 | "Something went wrong, connection is closed": "Coś poszło źle, połączenie zostało zamknięte",
10 | "Disconnected": "Rozłączony",
11 | "New connection has been rejected with reason: ": "Nowe połączenie zostało odrzucone z powodu: ",
12 | "New connection has been rejected": "Nowe połączenie zostało odrzucone",
13 | "Password is required": "Hasło jest wymagane",
14 | "noVNC encountered an error:": "noVNC napotkało błąd:",
15 | "Hide/Show the control bar": "Pokaż/Ukryj pasek ustawień",
16 | "Move/Drag Viewport": "Ruszaj/Przeciągaj Viewport",
17 | "viewport drag": "przeciągnij viewport",
18 | "Active Mouse Button": "Aktywny Przycisk Myszy",
19 | "No mousebutton": "Brak przycisku myszy",
20 | "Left mousebutton": "Lewy przycisk myszy",
21 | "Middle mousebutton": "Środkowy przycisk myszy",
22 | "Right mousebutton": "Prawy przycisk myszy",
23 | "Keyboard": "Klawiatura",
24 | "Show Keyboard": "Pokaż klawiaturę",
25 | "Extra keys": "Przyciski dodatkowe",
26 | "Show Extra Keys": "Pokaż przyciski dodatkowe",
27 | "Ctrl": "Ctrl",
28 | "Toggle Ctrl": "Przełącz Ctrl",
29 | "Alt": "Alt",
30 | "Toggle Alt": "Przełącz Alt",
31 | "Send Tab": "Wyślij Tab",
32 | "Tab": "Tab",
33 | "Esc": "Esc",
34 | "Send Escape": "Wyślij Escape",
35 | "Ctrl+Alt+Del": "Ctrl+Alt+Del",
36 | "Send Ctrl-Alt-Del": "Wyślij Ctrl-Alt-Del",
37 | "Shutdown/Reboot": "Wyłącz/Uruchom ponownie",
38 | "Shutdown/Reboot...": "Wyłącz/Uruchom ponownie...",
39 | "Power": "Włączony",
40 | "Shutdown": "Wyłącz",
41 | "Reboot": "Uruchom ponownie",
42 | "Reset": "Resetuj",
43 | "Clipboard": "Schowek",
44 | "Clear": "Wyczyść",
45 | "Fullscreen": "Pełny ekran",
46 | "Settings": "Ustawienia",
47 | "Shared Mode": "Tryb Współdzielenia",
48 | "View Only": "Tylko Podgląd",
49 | "Clip to Window": "Przytnij do Okna",
50 | "Scaling Mode:": "Tryb Skalowania:",
51 | "None": "Brak",
52 | "Local Scaling": "Skalowanie lokalne",
53 | "Remote Resizing": "Skalowanie zdalne",
54 | "Advanced": "Zaawansowane",
55 | "Repeater ID:": "ID Repeatera:",
56 | "WebSocket": "WebSocket",
57 | "Encrypt": "Szyfrowanie",
58 | "Host:": "Host:",
59 | "Port:": "Port:",
60 | "Path:": "Ścieżka:",
61 | "Automatic Reconnect": "Automatycznie wznawiaj połączenie",
62 | "Reconnect Delay (ms):": "Opóźnienie wznawiania (ms):",
63 | "Logging:": "Poziom logowania:",
64 | "Disconnect": "Rozłącz",
65 | "Connect": "Połącz",
66 | "Password:": "Hasło:",
67 | "Cancel": "Anuluj",
68 | "Canvas not supported.": "Element Canvas nie jest wspierany."
69 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/ru.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "Подключение...",
3 | "Disconnecting...": "Отключение...",
4 | "Reconnecting...": "Переподключение...",
5 | "Internal error": "Внутренняя ошибка",
6 | "Must set host": "Задайте имя сервера или IP",
7 | "Connected (encrypted) to ": "Подключено (с шифрованием) к ",
8 | "Connected (unencrypted) to ": "Подключено (без шифрования) к ",
9 | "Something went wrong, connection is closed": "Что-то пошло не так, подключение разорвано",
10 | "Failed to connect to server": "Ошибка подключения к серверу",
11 | "Disconnected": "Отключено",
12 | "New connection has been rejected with reason: ": "Подключиться не удалось: ",
13 | "New connection has been rejected": "Подключиться не удалось",
14 | "Password is required": "Требуется пароль",
15 | "noVNC encountered an error:": "Ошибка noVNC: ",
16 | "Hide/Show the control bar": "Скрыть/Показать контрольную панель",
17 | "Move/Drag Viewport": "Переместить окно",
18 | "viewport drag": "Переместить окно",
19 | "Active Mouse Button": "Активировать кнопки мыши",
20 | "No mousebutton": "Отключить кнопки мыши",
21 | "Left mousebutton": "Левая кнопка мыши",
22 | "Middle mousebutton": "Средняя кнопка мыши",
23 | "Right mousebutton": "Правая кнопка мыши",
24 | "Keyboard": "Клавиатура",
25 | "Show Keyboard": "Показать клавиатуру",
26 | "Extra keys": "Доп. кнопки",
27 | "Show Extra Keys": "Показать дополнительные кнопки",
28 | "Ctrl": "Ctrl",
29 | "Toggle Ctrl": "Передать нажатие Ctrl",
30 | "Alt": "Alt",
31 | "Toggle Alt": "Передать нажатие Alt",
32 | "Toggle Windows": "Переключение вкладок",
33 | "Windows": "Вкладка",
34 | "Send Tab": "Передать нажатие Tab",
35 | "Tab": "Tab",
36 | "Esc": "Esc",
37 | "Send Escape": "Передать нажатие Escape",
38 | "Ctrl+Alt+Del": "Ctrl+Alt+Del",
39 | "Send Ctrl-Alt-Del": "Передать нажатие Ctrl-Alt-Del",
40 | "Shutdown/Reboot": "Выключить/Перезагрузить",
41 | "Shutdown/Reboot...": "Выключить/Перезагрузить...",
42 | "Power": "Питание",
43 | "Shutdown": "Выключить",
44 | "Reboot": "Перезагрузить",
45 | "Reset": "Сброс",
46 | "Clipboard": "Буфер обмена",
47 | "Clear": "Очистить",
48 | "Fullscreen": "Во весь экран",
49 | "Settings": "Настройки",
50 | "Shared Mode": "Общий режим",
51 | "View Only": "Просмотр",
52 | "Clip to Window": "В окно",
53 | "Scaling Mode:": "Масштаб:",
54 | "None": "Нет",
55 | "Local Scaling": "Локльный масштаб",
56 | "Remote Resizing": "Удаленный масштаб",
57 | "Advanced": "Дополнительно",
58 | "Repeater ID:": "Идентификатор ID:",
59 | "WebSocket": "WebSocket",
60 | "Encrypt": "Шифрование",
61 | "Host:": "Сервер:",
62 | "Port:": "Порт:",
63 | "Path:": "Путь:",
64 | "Automatic Reconnect": "Автоматическое переподключение",
65 | "Reconnect Delay (ms):": "Задержка переподключения (мс):",
66 | "Show Dot when No Cursor": "Показать точку вместо курсора",
67 | "Logging:": "Лог:",
68 | "Disconnect": "Отключение",
69 | "Connect": "Подключение",
70 | "Password:": "Пароль:",
71 | "Send Password": "Пароль: ",
72 | "Cancel": "Выход"
73 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/sv.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "Ansluter...",
3 | "Disconnecting...": "Kopplar ner...",
4 | "Reconnecting...": "Återansluter...",
5 | "Internal error": "Internt fel",
6 | "Must set host": "Du måste specifiera en värd",
7 | "Connected (encrypted) to ": "Ansluten (krypterat) till ",
8 | "Connected (unencrypted) to ": "Ansluten (okrypterat) till ",
9 | "Something went wrong, connection is closed": "Något gick fel, anslutningen avslutades",
10 | "Failed to connect to server": "Misslyckades att ansluta till servern",
11 | "Disconnected": "Frånkopplad",
12 | "New connection has been rejected with reason: ": "Ny anslutning har blivit nekad med följande skäl: ",
13 | "New connection has been rejected": "Ny anslutning har blivit nekad",
14 | "Credentials are required": "Användaruppgifter krävs",
15 | "noVNC encountered an error:": "noVNC stötte på ett problem:",
16 | "Hide/Show the control bar": "Göm/Visa kontrollbaren",
17 | "Drag": "Dra",
18 | "Move/Drag Viewport": "Flytta/Dra Vyn",
19 | "Keyboard": "Tangentbord",
20 | "Show Keyboard": "Visa Tangentbord",
21 | "Extra keys": "Extraknappar",
22 | "Show Extra Keys": "Visa Extraknappar",
23 | "Ctrl": "Ctrl",
24 | "Toggle Ctrl": "Växla Ctrl",
25 | "Alt": "Alt",
26 | "Toggle Alt": "Växla Alt",
27 | "Toggle Windows": "Växla Windows",
28 | "Windows": "Windows",
29 | "Send Tab": "Skicka Tab",
30 | "Tab": "Tab",
31 | "Esc": "Esc",
32 | "Send Escape": "Skicka Escape",
33 | "Ctrl+Alt+Del": "Ctrl+Alt+Del",
34 | "Send Ctrl-Alt-Del": "Skicka Ctrl-Alt-Del",
35 | "Shutdown/Reboot": "Stäng av/Boota om",
36 | "Shutdown/Reboot...": "Stäng av/Boota om...",
37 | "Power": "Ström",
38 | "Shutdown": "Stäng av",
39 | "Reboot": "Boota om",
40 | "Reset": "Återställ",
41 | "Clipboard": "Urklipp",
42 | "Clear": "Rensa",
43 | "Fullscreen": "Fullskärm",
44 | "Settings": "Inställningar",
45 | "Shared Mode": "Delat Läge",
46 | "View Only": "Endast Visning",
47 | "Clip to Window": "Begränsa till Fönster",
48 | "Scaling Mode:": "Skalningsläge:",
49 | "None": "Ingen",
50 | "Local Scaling": "Lokal Skalning",
51 | "Remote Resizing": "Ändra Storlek",
52 | "Advanced": "Avancerat",
53 | "Quality:": "Kvalitet:",
54 | "Compression level:": "Kompressionsnivå:",
55 | "Repeater ID:": "Repeater-ID:",
56 | "WebSocket": "WebSocket",
57 | "Encrypt": "Kryptera",
58 | "Host:": "Värd:",
59 | "Port:": "Port:",
60 | "Path:": "Sökväg:",
61 | "Automatic Reconnect": "Automatisk Återanslutning",
62 | "Reconnect Delay (ms):": "Fördröjning (ms):",
63 | "Show Dot when No Cursor": "Visa prick när ingen muspekare finns",
64 | "Logging:": "Loggning:",
65 | "Version:": "Version:",
66 | "Disconnect": "Koppla från",
67 | "Connect": "Anslut",
68 | "Username:": "Användarnamn:",
69 | "Password:": "Lösenord:",
70 | "Send Credentials": "Skicka Användaruppgifter",
71 | "Cancel": "Avbryt"
72 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/tr.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "Bağlanıyor...",
3 | "Disconnecting...": "Bağlantı kesiliyor...",
4 | "Reconnecting...": "Yeniden bağlantı kuruluyor...",
5 | "Internal error": "İç hata",
6 | "Must set host": "Sunucuyu kur",
7 | "Connected (encrypted) to ": "Bağlı (şifrelenmiş)",
8 | "Connected (unencrypted) to ": "Bağlandı (şifrelenmemiş)",
9 | "Something went wrong, connection is closed": "Bir şeyler ters gitti, bağlantı kesildi",
10 | "Disconnected": "Bağlantı kesildi",
11 | "New connection has been rejected with reason: ": "Bağlantı aşağıdaki nedenlerden dolayı reddedildi: ",
12 | "New connection has been rejected": "Bağlantı reddedildi",
13 | "Password is required": "Şifre gerekli",
14 | "noVNC encountered an error:": "Bir hata oluştu:",
15 | "Hide/Show the control bar": "Denetim masasını Gizle/Göster",
16 | "Move/Drag Viewport": "Görünümü Taşı/Sürükle",
17 | "viewport drag": "Görüntü penceresini sürükle",
18 | "Active Mouse Button": "Aktif Fare Düğmesi",
19 | "No mousebutton": "Fare düğmesi yok",
20 | "Left mousebutton": "Farenin sol düğmesi",
21 | "Middle mousebutton": "Farenin orta düğmesi",
22 | "Right mousebutton": "Farenin sağ düğmesi",
23 | "Keyboard": "Klavye",
24 | "Show Keyboard": "Klavye Düzenini Göster",
25 | "Extra keys": "Ekstra tuşlar",
26 | "Show Extra Keys": "Ekstra tuşları göster",
27 | "Ctrl": "Ctrl",
28 | "Toggle Ctrl": "Ctrl Değiştir ",
29 | "Alt": "Alt",
30 | "Toggle Alt": "Alt Değiştir",
31 | "Send Tab": "Sekme Gönder",
32 | "Tab": "Sekme",
33 | "Esc": "Esc",
34 | "Send Escape": "Boşluk Gönder",
35 | "Ctrl+Alt+Del": "Ctrl + Alt + Del",
36 | "Send Ctrl-Alt-Del": "Ctrl-Alt-Del Gönder",
37 | "Shutdown/Reboot": "Kapat/Yeniden Başlat",
38 | "Shutdown/Reboot...": "Kapat/Yeniden Başlat...",
39 | "Power": "Güç",
40 | "Shutdown": "Kapat",
41 | "Reboot": "Yeniden Başlat",
42 | "Reset": "Sıfırla",
43 | "Clipboard": "Pano",
44 | "Clear": "Temizle",
45 | "Fullscreen": "Tam Ekran",
46 | "Settings": "Ayarlar",
47 | "Shared Mode": "Paylaşım Modu",
48 | "View Only": "Sadece Görüntüle",
49 | "Clip to Window": "Pencereye Tıkla",
50 | "Scaling Mode:": "Ölçekleme Modu:",
51 | "None": "Bilinmeyen",
52 | "Local Scaling": "Yerel Ölçeklendirme",
53 | "Remote Resizing": "Uzaktan Yeniden Boyutlandırma",
54 | "Advanced": "Gelişmiş",
55 | "Repeater ID:": "Tekralayıcı ID:",
56 | "WebSocket": "WebSocket",
57 | "Encrypt": "Şifrele",
58 | "Host:": "Ana makine:",
59 | "Port:": "Port:",
60 | "Path:": "Yol:",
61 | "Automatic Reconnect": "Otomatik Yeniden Bağlan",
62 | "Reconnect Delay (ms):": "Yeniden Bağlanma Süreci (ms):",
63 | "Logging:": "Giriş yapılıyor:",
64 | "Disconnect": "Bağlantıyı Kes",
65 | "Connect": "Bağlan",
66 | "Password:": "Parola:",
67 | "Cancel": "Vazgeç",
68 | "Canvas not supported.": "Tuval desteklenmiyor."
69 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/zh_CN.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "连接中...",
3 | "Disconnecting...": "正在断开连接...",
4 | "Reconnecting...": "重新连接中...",
5 | "Internal error": "内部错误",
6 | "Must set host": "请提供主机名",
7 | "Connected (encrypted) to ": "已连接到(加密)",
8 | "Connected (unencrypted) to ": "已连接到(未加密)",
9 | "Something went wrong, connection is closed": "发生错误,连接已关闭",
10 | "Failed to connect to server": "无法连接到服务器",
11 | "Disconnected": "已断开连接",
12 | "New connection has been rejected with reason: ": "连接被拒绝,原因:",
13 | "New connection has been rejected": "连接被拒绝",
14 | "Password is required": "请提供密码",
15 | "noVNC encountered an error:": "noVNC 遇到一个错误:",
16 | "Hide/Show the control bar": "显示/隐藏控制栏",
17 | "Move/Drag Viewport": "拖放显示范围",
18 | "viewport drag": "显示范围拖放",
19 | "Active Mouse Button": "启动鼠标按鍵",
20 | "No mousebutton": "禁用鼠标按鍵",
21 | "Left mousebutton": "鼠标左鍵",
22 | "Middle mousebutton": "鼠标中鍵",
23 | "Right mousebutton": "鼠标右鍵",
24 | "Keyboard": "键盘",
25 | "Show Keyboard": "显示键盘",
26 | "Extra keys": "额外按键",
27 | "Show Extra Keys": "显示额外按键",
28 | "Ctrl": "Ctrl",
29 | "Toggle Ctrl": "切换 Ctrl",
30 | "Alt": "Alt",
31 | "Toggle Alt": "切换 Alt",
32 | "Send Tab": "发送 Tab 键",
33 | "Tab": "Tab",
34 | "Esc": "Esc",
35 | "Send Escape": "发送 Escape 键",
36 | "Ctrl+Alt+Del": "Ctrl-Alt-Del",
37 | "Send Ctrl-Alt-Del": "发送 Ctrl-Alt-Del 键",
38 | "Shutdown/Reboot": "关机/重新启动",
39 | "Shutdown/Reboot...": "关机/重新启动...",
40 | "Power": "电源",
41 | "Shutdown": "关机",
42 | "Reboot": "重新启动",
43 | "Reset": "重置",
44 | "Clipboard": "剪贴板",
45 | "Clear": "清除",
46 | "Fullscreen": "全屏",
47 | "Settings": "设置",
48 | "Shared Mode": "分享模式",
49 | "View Only": "仅查看",
50 | "Clip to Window": "限制/裁切窗口大小",
51 | "Scaling Mode:": "缩放模式:",
52 | "None": "无",
53 | "Local Scaling": "本地缩放",
54 | "Remote Resizing": "远程调整大小",
55 | "Advanced": "高级",
56 | "Repeater ID:": "中继站 ID",
57 | "WebSocket": "WebSocket",
58 | "Encrypt": "加密",
59 | "Host:": "主机:",
60 | "Port:": "端口:",
61 | "Path:": "路径:",
62 | "Automatic Reconnect": "自动重新连接",
63 | "Reconnect Delay (ms):": "重新连接间隔 (ms):",
64 | "Logging:": "日志级别:",
65 | "Disconnect": "中断连接",
66 | "Connect": "连接",
67 | "Password:": "密码:",
68 | "Cancel": "取消"
69 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/locale/zh_TW.json:
--------------------------------------------------------------------------------
1 | {
2 | "Connecting...": "連線中...",
3 | "Disconnecting...": "正在中斷連線...",
4 | "Reconnecting...": "重新連線中...",
5 | "Internal error": "內部錯誤",
6 | "Must set host": "請提供主機資訊",
7 | "Connected (encrypted) to ": "已加密連線到",
8 | "Connected (unencrypted) to ": "未加密連線到",
9 | "Something went wrong, connection is closed": "發生錯誤,連線已關閉",
10 | "Failed to connect to server": "無法連線到伺服器",
11 | "Disconnected": "連線已中斷",
12 | "New connection has been rejected with reason: ": "連線被拒絕,原因:",
13 | "New connection has been rejected": "連線被拒絕",
14 | "Password is required": "請提供密碼",
15 | "noVNC encountered an error:": "noVNC 遇到一個錯誤:",
16 | "Hide/Show the control bar": "顯示/隱藏控制列",
17 | "Move/Drag Viewport": "拖放顯示範圍",
18 | "viewport drag": "顯示範圍拖放",
19 | "Active Mouse Button": "啟用滑鼠按鍵",
20 | "No mousebutton": "無滑鼠按鍵",
21 | "Left mousebutton": "滑鼠左鍵",
22 | "Middle mousebutton": "滑鼠中鍵",
23 | "Right mousebutton": "滑鼠右鍵",
24 | "Keyboard": "鍵盤",
25 | "Show Keyboard": "顯示鍵盤",
26 | "Extra keys": "額外按鍵",
27 | "Show Extra Keys": "顯示額外按鍵",
28 | "Ctrl": "Ctrl",
29 | "Toggle Ctrl": "切換 Ctrl",
30 | "Alt": "Alt",
31 | "Toggle Alt": "切換 Alt",
32 | "Send Tab": "送出 Tab 鍵",
33 | "Tab": "Tab",
34 | "Esc": "Esc",
35 | "Send Escape": "送出 Escape 鍵",
36 | "Ctrl+Alt+Del": "Ctrl-Alt-Del",
37 | "Send Ctrl-Alt-Del": "送出 Ctrl-Alt-Del 快捷鍵",
38 | "Shutdown/Reboot": "關機/重新啟動",
39 | "Shutdown/Reboot...": "關機/重新啟動...",
40 | "Power": "電源",
41 | "Shutdown": "關機",
42 | "Reboot": "重新啟動",
43 | "Reset": "重設",
44 | "Clipboard": "剪貼簿",
45 | "Clear": "清除",
46 | "Fullscreen": "全螢幕",
47 | "Settings": "設定",
48 | "Shared Mode": "分享模式",
49 | "View Only": "僅檢視",
50 | "Clip to Window": "限制/裁切視窗大小",
51 | "Scaling Mode:": "縮放模式:",
52 | "None": "無",
53 | "Local Scaling": "本機縮放",
54 | "Remote Resizing": "遠端調整大小",
55 | "Advanced": "進階",
56 | "Repeater ID:": "中繼站 ID",
57 | "WebSocket": "WebSocket",
58 | "Encrypt": "加密",
59 | "Host:": "主機:",
60 | "Port:": "連接埠:",
61 | "Path:": "路徑:",
62 | "Automatic Reconnect": "自動重新連線",
63 | "Reconnect Delay (ms):": "重新連線間隔 (ms):",
64 | "Logging:": "日誌級別:",
65 | "Disconnect": "中斷連線",
66 | "Connect": "連線",
67 | "Password:": "密碼:",
68 | "Cancel": "取消"
69 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/sounds/CREDITS:
--------------------------------------------------------------------------------
1 | bell
2 | Copyright: Dr. Richard Boulanger et al
3 | URL: http://www.archive.org/details/Berklee44v12
4 | License: CC-BY Attribution 3.0 Unported
5 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/sounds/bell.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/sounds/bell.mp3
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/sounds/bell.oga:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/sounds/bell.oga
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/styles/Orbitron700.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/styles/Orbitron700.ttf
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/app/styles/Orbitron700.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/app/styles/Orbitron700.woff
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/decoders/copyrect.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2019 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | *
8 | */
9 |
10 | export default class CopyRectDecoder {
11 | decodeRect(x, y, width, height, sock, display, depth) {
12 | if (sock.rQwait("COPYRECT", 4)) {
13 | return false;
14 | }
15 |
16 | let deltaX = sock.rQshift16();
17 | let deltaY = sock.rQshift16();
18 | display.copyImage(deltaX, deltaY, x, y, width, height);
19 |
20 | return true;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/decoders/raw.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2019 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | *
8 | */
9 |
10 | export default class RawDecoder {
11 | constructor() {
12 | this._lines = 0;
13 | }
14 |
15 | decodeRect(x, y, width, height, sock, display, depth) {
16 | if (this._lines === 0) {
17 | this._lines = height;
18 | }
19 |
20 | const pixelSize = depth == 8 ? 1 : 4;
21 | const bytesPerLine = width * pixelSize;
22 |
23 | if (sock.rQwait("RAW", bytesPerLine)) {
24 | return false;
25 | }
26 |
27 | const curY = y + (height - this._lines);
28 | const currHeight = Math.min(this._lines,
29 | Math.floor(sock.rQlen / bytesPerLine));
30 | let data = sock.rQ;
31 | let index = sock.rQi;
32 |
33 | // Convert data if needed
34 | if (depth == 8) {
35 | const pixels = width * currHeight;
36 | const newdata = new Uint8Array(pixels * 4);
37 | for (let i = 0; i < pixels; i++) {
38 | newdata[i * 4 + 0] = ((data[index + i] >> 0) & 0x3) * 255 / 3;
39 | newdata[i * 4 + 1] = ((data[index + i] >> 2) & 0x3) * 255 / 3;
40 | newdata[i * 4 + 2] = ((data[index + i] >> 4) & 0x3) * 255 / 3;
41 | newdata[i * 4 + 4] = 0;
42 | }
43 | data = newdata;
44 | index = 0;
45 | }
46 |
47 | display.blitImage(x, curY, width, currHeight, data, index);
48 | sock.rQskipBytes(currHeight * bytesPerLine);
49 | this._lines -= currHeight;
50 | if (this._lines > 0) {
51 | return false;
52 | }
53 |
54 | return true;
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/decoders/rre.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2019 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | *
8 | */
9 |
10 | export default class RREDecoder {
11 | constructor() {
12 | this._subrects = 0;
13 | }
14 |
15 | decodeRect(x, y, width, height, sock, display, depth) {
16 | if (this._subrects === 0) {
17 | if (sock.rQwait("RRE", 4 + 4)) {
18 | return false;
19 | }
20 |
21 | this._subrects = sock.rQshift32();
22 |
23 | let color = sock.rQshiftBytes(4); // Background
24 | display.fillRect(x, y, width, height, color);
25 | }
26 |
27 | while (this._subrects > 0) {
28 | if (sock.rQwait("RRE", 4 + 8)) {
29 | return false;
30 | }
31 |
32 | let color = sock.rQshiftBytes(4);
33 | let sx = sock.rQshift16();
34 | let sy = sock.rQshift16();
35 | let swidth = sock.rQshift16();
36 | let sheight = sock.rQshift16();
37 | display.fillRect(x + sx, y + sy, swidth, sheight, color);
38 |
39 | this._subrects--;
40 | }
41 |
42 | return true;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/decoders/tightpng.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2019 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | *
8 | */
9 |
10 | import TightDecoder from './tight.js';
11 |
12 | export default class TightPNGDecoder extends TightDecoder {
13 | _pngRect(x, y, width, height, sock, display, depth) {
14 | let data = this._readData(sock);
15 | if (data === null) {
16 | return false;
17 | }
18 |
19 | display.imageRect(x, y, width, height, "image/png", data);
20 |
21 | return true;
22 | }
23 |
24 | _basicRect(ctl, x, y, width, height, sock, display, depth) {
25 | throw new Error("BasicCompression received in TightPNG rect");
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/deflator.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2020 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | */
8 |
9 | import { deflateInit, deflate } from "../vendor/pako/lib/zlib/deflate.js";
10 | import { Z_FULL_FLUSH } from "../vendor/pako/lib/zlib/deflate.js";
11 | import ZStream from "../vendor/pako/lib/zlib/zstream.js";
12 |
13 | export default class Deflator {
14 | constructor() {
15 | this.strm = new ZStream();
16 | this.chunkSize = 1024 * 10 * 10;
17 | this.outputBuffer = new Uint8Array(this.chunkSize);
18 | this.windowBits = 5;
19 |
20 | deflateInit(this.strm, this.windowBits);
21 | }
22 |
23 | deflate(inData) {
24 | /* eslint-disable camelcase */
25 | this.strm.input = inData;
26 | this.strm.avail_in = this.strm.input.length;
27 | this.strm.next_in = 0;
28 | this.strm.output = this.outputBuffer;
29 | this.strm.avail_out = this.chunkSize;
30 | this.strm.next_out = 0;
31 | /* eslint-enable camelcase */
32 |
33 | let lastRet = deflate(this.strm, Z_FULL_FLUSH);
34 | let outData = new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);
35 |
36 | if (lastRet < 0) {
37 | throw new Error("zlib deflate failed");
38 | }
39 |
40 | if (this.strm.avail_in > 0) {
41 | // Read chunks until done
42 |
43 | let chunks = [outData];
44 | let totalLen = outData.length;
45 | do {
46 | /* eslint-disable camelcase */
47 | this.strm.output = new Uint8Array(this.chunkSize);
48 | this.strm.next_out = 0;
49 | this.strm.avail_out = this.chunkSize;
50 | /* eslint-enable camelcase */
51 |
52 | lastRet = deflate(this.strm, Z_FULL_FLUSH);
53 |
54 | if (lastRet < 0) {
55 | throw new Error("zlib deflate failed");
56 | }
57 |
58 | let chunk = new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);
59 | totalLen += chunk.length;
60 | chunks.push(chunk);
61 | } while (this.strm.avail_in > 0);
62 |
63 | // Combine chunks into a single data
64 |
65 | let newData = new Uint8Array(totalLen);
66 | let offset = 0;
67 |
68 | for (let i = 0; i < chunks.length; i++) {
69 | newData.set(chunks[i], offset);
70 | offset += chunks[i].length;
71 | }
72 |
73 | outData = newData;
74 | }
75 |
76 | /* eslint-disable camelcase */
77 | this.strm.input = null;
78 | this.strm.avail_in = 0;
79 | this.strm.next_in = 0;
80 | /* eslint-enable camelcase */
81 |
82 | return outData;
83 | }
84 |
85 | }
86 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/encodings.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2019 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | */
8 |
9 | export const encodings = {
10 | encodingRaw: 0,
11 | encodingCopyRect: 1,
12 | encodingRRE: 2,
13 | encodingHextile: 5,
14 | encodingTight: 7,
15 | encodingTightPNG: -260,
16 |
17 | pseudoEncodingQualityLevel9: -23,
18 | pseudoEncodingQualityLevel0: -32,
19 | pseudoEncodingDesktopSize: -223,
20 | pseudoEncodingLastRect: -224,
21 | pseudoEncodingCursor: -239,
22 | pseudoEncodingQEMUExtendedKeyEvent: -258,
23 | pseudoEncodingDesktopName: -307,
24 | pseudoEncodingExtendedDesktopSize: -308,
25 | pseudoEncodingXvp: -309,
26 | pseudoEncodingFence: -312,
27 | pseudoEncodingContinuousUpdates: -313,
28 | pseudoEncodingCompressLevel9: -247,
29 | pseudoEncodingCompressLevel0: -256,
30 | pseudoEncodingVMwareCursor: 0x574d5664,
31 | pseudoEncodingExtendedClipboard: 0xc0a1e5ce
32 | };
33 |
34 | export function encodingName(num) {
35 | switch (num) {
36 | case encodings.encodingRaw: return "Raw";
37 | case encodings.encodingCopyRect: return "CopyRect";
38 | case encodings.encodingRRE: return "RRE";
39 | case encodings.encodingHextile: return "Hextile";
40 | case encodings.encodingTight: return "Tight";
41 | case encodings.encodingTightPNG: return "TightPNG";
42 | default: return "[unknown encoding " + num + "]";
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/inflator.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2020 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | */
8 |
9 | import { inflateInit, inflate, inflateReset } from "../vendor/pako/lib/zlib/inflate.js";
10 | import ZStream from "../vendor/pako/lib/zlib/zstream.js";
11 |
12 | export default class Inflate {
13 | constructor() {
14 | this.strm = new ZStream();
15 | this.chunkSize = 1024 * 10 * 10;
16 | this.strm.output = new Uint8Array(this.chunkSize);
17 | this.windowBits = 5;
18 |
19 | inflateInit(this.strm, this.windowBits);
20 | }
21 |
22 | setInput(data) {
23 | if (!data) {
24 | //FIXME: flush remaining data.
25 | /* eslint-disable camelcase */
26 | this.strm.input = null;
27 | this.strm.avail_in = 0;
28 | this.strm.next_in = 0;
29 | } else {
30 | this.strm.input = data;
31 | this.strm.avail_in = this.strm.input.length;
32 | this.strm.next_in = 0;
33 | /* eslint-enable camelcase */
34 | }
35 | }
36 |
37 | inflate(expected) {
38 | // resize our output buffer if it's too small
39 | // (we could just use multiple chunks, but that would cause an extra
40 | // allocation each time to flatten the chunks)
41 | if (expected > this.chunkSize) {
42 | this.chunkSize = expected;
43 | this.strm.output = new Uint8Array(this.chunkSize);
44 | }
45 |
46 | /* eslint-disable camelcase */
47 | this.strm.next_out = 0;
48 | this.strm.avail_out = expected;
49 | /* eslint-enable camelcase */
50 |
51 | let ret = inflate(this.strm, 0); // Flush argument not used.
52 | if (ret < 0) {
53 | throw new Error("zlib inflate failed");
54 | }
55 |
56 | if (this.strm.next_out != expected) {
57 | throw new Error("Incomplete zlib block");
58 | }
59 |
60 | return new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);
61 | }
62 |
63 | reset() {
64 | inflateReset(this.strm);
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/input/vkeys.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2018 The noVNC Authors
4 | * Licensed under MPL 2.0 or any later version (see LICENSE.txt)
5 | */
6 |
7 | /*
8 | * Mapping between Microsoft® Windows® Virtual-Key codes and
9 | * HTML key codes.
10 | */
11 |
12 | export default {
13 | 0x08: 'Backspace',
14 | 0x09: 'Tab',
15 | 0x0a: 'NumpadClear',
16 | 0x0c: 'Numpad5', // IE11 sends evt.keyCode: 12 when numlock is off
17 | 0x0d: 'Enter',
18 | 0x10: 'ShiftLeft',
19 | 0x11: 'ControlLeft',
20 | 0x12: 'AltLeft',
21 | 0x13: 'Pause',
22 | 0x14: 'CapsLock',
23 | 0x15: 'Lang1',
24 | 0x19: 'Lang2',
25 | 0x1b: 'Escape',
26 | 0x1c: 'Convert',
27 | 0x1d: 'NonConvert',
28 | 0x20: 'Space',
29 | 0x21: 'PageUp',
30 | 0x22: 'PageDown',
31 | 0x23: 'End',
32 | 0x24: 'Home',
33 | 0x25: 'ArrowLeft',
34 | 0x26: 'ArrowUp',
35 | 0x27: 'ArrowRight',
36 | 0x28: 'ArrowDown',
37 | 0x29: 'Select',
38 | 0x2c: 'PrintScreen',
39 | 0x2d: 'Insert',
40 | 0x2e: 'Delete',
41 | 0x2f: 'Help',
42 | 0x30: 'Digit0',
43 | 0x31: 'Digit1',
44 | 0x32: 'Digit2',
45 | 0x33: 'Digit3',
46 | 0x34: 'Digit4',
47 | 0x35: 'Digit5',
48 | 0x36: 'Digit6',
49 | 0x37: 'Digit7',
50 | 0x38: 'Digit8',
51 | 0x39: 'Digit9',
52 | 0x5b: 'MetaLeft',
53 | 0x5c: 'MetaRight',
54 | 0x5d: 'ContextMenu',
55 | 0x5f: 'Sleep',
56 | 0x60: 'Numpad0',
57 | 0x61: 'Numpad1',
58 | 0x62: 'Numpad2',
59 | 0x63: 'Numpad3',
60 | 0x64: 'Numpad4',
61 | 0x65: 'Numpad5',
62 | 0x66: 'Numpad6',
63 | 0x67: 'Numpad7',
64 | 0x68: 'Numpad8',
65 | 0x69: 'Numpad9',
66 | 0x6a: 'NumpadMultiply',
67 | 0x6b: 'NumpadAdd',
68 | 0x6c: 'NumpadDecimal',
69 | 0x6d: 'NumpadSubtract',
70 | 0x6e: 'NumpadDecimal', // Duplicate, because buggy on Windows
71 | 0x6f: 'NumpadDivide',
72 | 0x70: 'F1',
73 | 0x71: 'F2',
74 | 0x72: 'F3',
75 | 0x73: 'F4',
76 | 0x74: 'F5',
77 | 0x75: 'F6',
78 | 0x76: 'F7',
79 | 0x77: 'F8',
80 | 0x78: 'F9',
81 | 0x79: 'F10',
82 | 0x7a: 'F11',
83 | 0x7b: 'F12',
84 | 0x7c: 'F13',
85 | 0x7d: 'F14',
86 | 0x7e: 'F15',
87 | 0x7f: 'F16',
88 | 0x80: 'F17',
89 | 0x81: 'F18',
90 | 0x82: 'F19',
91 | 0x83: 'F20',
92 | 0x84: 'F21',
93 | 0x85: 'F22',
94 | 0x86: 'F23',
95 | 0x87: 'F24',
96 | 0x90: 'NumLock',
97 | 0x91: 'ScrollLock',
98 | 0xa6: 'BrowserBack',
99 | 0xa7: 'BrowserForward',
100 | 0xa8: 'BrowserRefresh',
101 | 0xa9: 'BrowserStop',
102 | 0xaa: 'BrowserSearch',
103 | 0xab: 'BrowserFavorites',
104 | 0xac: 'BrowserHome',
105 | 0xad: 'AudioVolumeMute',
106 | 0xae: 'AudioVolumeDown',
107 | 0xaf: 'AudioVolumeUp',
108 | 0xb0: 'MediaTrackNext',
109 | 0xb1: 'MediaTrackPrevious',
110 | 0xb2: 'MediaStop',
111 | 0xb3: 'MediaPlayPause',
112 | 0xb4: 'LaunchMail',
113 | 0xb5: 'MediaSelect',
114 | 0xb6: 'LaunchApp1',
115 | 0xb7: 'LaunchApp2',
116 | 0xe1: 'AltRight', // Only when it is AltGraph
117 | };
118 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/util/element.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2020 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | */
8 |
9 | /*
10 | * HTML element utility functions
11 | */
12 |
13 | export function clientToElement(x, y, elem) {
14 | const bounds = elem.getBoundingClientRect();
15 | let pos = { x: 0, y: 0 };
16 | // Clip to target bounds
17 | if (x < bounds.left) {
18 | pos.x = 0;
19 | } else if (x >= bounds.right) {
20 | pos.x = bounds.width - 1;
21 | } else {
22 | pos.x = x - bounds.left;
23 | }
24 | if (y < bounds.top) {
25 | pos.y = 0;
26 | } else if (y >= bounds.bottom) {
27 | pos.y = bounds.height - 1;
28 | } else {
29 | pos.y = y - bounds.top;
30 | }
31 | return pos;
32 | }
33 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/util/eventtarget.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2019 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | */
8 |
9 | export default class EventTargetMixin {
10 | constructor() {
11 | this._listeners = new Map();
12 | }
13 |
14 | addEventListener(type, callback) {
15 | if (!this._listeners.has(type)) {
16 | this._listeners.set(type, new Set());
17 | }
18 | this._listeners.get(type).add(callback);
19 | }
20 |
21 | removeEventListener(type, callback) {
22 | if (this._listeners.has(type)) {
23 | this._listeners.get(type).delete(callback);
24 | }
25 | }
26 |
27 | dispatchEvent(event) {
28 | if (!this._listeners.has(event.type)) {
29 | return true;
30 | }
31 | this._listeners.get(event.type)
32 | .forEach(callback => callback.call(this, event));
33 | return !event.defaultPrevented;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/util/int.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2020 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | */
8 |
9 | export function toUnsigned32bit(toConvert) {
10 | return toConvert >>> 0;
11 | }
12 |
13 | export function toSigned32bit(toConvert) {
14 | return toConvert | 0;
15 | }
16 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/util/logging.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2019 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | */
8 |
9 | /*
10 | * Logging/debug routines
11 | */
12 |
13 | let _logLevel = 'warn';
14 |
15 | let Debug = () => {};
16 | let Info = () => {};
17 | let Warn = () => {};
18 | let Error = () => {};
19 |
20 | export function initLogging(level) {
21 | if (typeof level === 'undefined') {
22 | level = _logLevel;
23 | } else {
24 | _logLevel = level;
25 | }
26 |
27 | Debug = Info = Warn = Error = () => {};
28 |
29 | if (typeof window.console !== "undefined") {
30 | /* eslint-disable no-console, no-fallthrough */
31 | switch (level) {
32 | case 'debug':
33 | Debug = console.debug.bind(window.console);
34 | case 'info':
35 | Info = console.info.bind(window.console);
36 | case 'warn':
37 | Warn = console.warn.bind(window.console);
38 | case 'error':
39 | Error = console.error.bind(window.console);
40 | case 'none':
41 | break;
42 | default:
43 | throw new window.Error("invalid logging type '" + level + "'");
44 | }
45 | /* eslint-enable no-console, no-fallthrough */
46 | }
47 | }
48 |
49 | export function getLogging() {
50 | return _logLevel;
51 | }
52 |
53 | export { Debug, Info, Warn, Error };
54 |
55 | // Initialize logging level
56 | initLogging();
57 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/util/polyfill.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2020 The noVNC Authors
4 | * Licensed under MPL 2.0 or any later version (see LICENSE.txt)
5 | */
6 |
7 | /* Polyfills to provide new APIs in old browsers */
8 |
9 | /* Object.assign() (taken from MDN) */
10 | if (typeof Object.assign != 'function') {
11 | // Must be writable: true, enumerable: false, configurable: true
12 | Object.defineProperty(Object, "assign", {
13 | value: function assign(target, varArgs) { // .length of function is 2
14 | 'use strict';
15 | if (target == null) { // TypeError if undefined or null
16 | throw new TypeError('Cannot convert undefined or null to object');
17 | }
18 |
19 | const to = Object(target);
20 |
21 | for (let index = 1; index < arguments.length; index++) {
22 | const nextSource = arguments[index];
23 |
24 | if (nextSource != null) { // Skip over if undefined or null
25 | for (let nextKey in nextSource) {
26 | // Avoid bugs when hasOwnProperty is shadowed
27 | if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
28 | to[nextKey] = nextSource[nextKey];
29 | }
30 | }
31 | }
32 | }
33 | return to;
34 | },
35 | writable: true,
36 | configurable: true
37 | });
38 | }
39 |
40 | /* CustomEvent constructor (taken from MDN) */
41 | (() => {
42 | function CustomEvent(event, params) {
43 | params = params || { bubbles: false, cancelable: false, detail: undefined };
44 | const evt = document.createEvent( 'CustomEvent' );
45 | evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );
46 | return evt;
47 | }
48 |
49 | CustomEvent.prototype = window.Event.prototype;
50 |
51 | if (typeof window.CustomEvent !== "function") {
52 | window.CustomEvent = CustomEvent;
53 | }
54 | })();
55 |
56 | /* Number.isInteger() (taken from MDN) */
57 | Number.isInteger = Number.isInteger || function isInteger(value) {
58 | return typeof value === 'number' &&
59 | isFinite(value) &&
60 | Math.floor(value) === value;
61 | };
62 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/core/util/strings.js:
--------------------------------------------------------------------------------
1 | /*
2 | * noVNC: HTML5 VNC client
3 | * Copyright (C) 2019 The noVNC Authors
4 | * Licensed under MPL 2.0 (see LICENSE.txt)
5 | *
6 | * See README.md for usage and integration instructions.
7 | */
8 |
9 | // Decode from UTF-8
10 | export function decodeUTF8(utf8string, allowLatin1=false) {
11 | try {
12 | return decodeURIComponent(escape(utf8string));
13 | } catch (e) {
14 | if (e instanceof URIError) {
15 | if (allowLatin1) {
16 | // If we allow Latin1 we can ignore any decoding fails
17 | // and in these cases return the original string
18 | return utf8string;
19 | }
20 | }
21 | throw e;
22 | }
23 | }
24 |
25 | // Encode to UTF-8
26 | export function encodeUTF8(DOMString) {
27 | return unescape(encodeURIComponent(DOMString));
28 | }
29 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/docs/LIBRARY.md:
--------------------------------------------------------------------------------
1 | # Using the noVNC JavaScript library
2 |
3 | This document describes how to make use of the noVNC JavaScript library for
4 | integration in your own VNC client application. If you wish to embed the more
5 | complete noVNC application with its included user interface then please see
6 | our [embedding documentation](EMBEDDING.md).
7 |
8 | ## API
9 |
10 | The API of noVNC consists of a single object called `RFB`. The formal
11 | documentation for that object can be found in our [API documentation](API.md).
12 |
13 | ## Example
14 |
15 | noVNC includes a small example application called `vnc_lite.html`. This does
16 | not make use of all the features of noVNC, but is a good start to see how to
17 | do things.
18 |
19 | ## Conversion of Modules
20 |
21 | noVNC is written using ECMAScript 6 modules. Many of the major browsers support
22 | these modules natively, but not all. They are also not supported by Node.js. To
23 | use noVNC in these places the library must first be converted.
24 |
25 | Fortunately noVNC includes a script to handle this conversion. Please follow
26 | the following steps:
27 |
28 | 1. Install Node.js
29 | 2. Run `npm install` in the noVNC directory
30 | 3. Run `./utils/use_require.js --as `
31 |
32 | Several module formats are available. Please run
33 | `./utils/use_require.js --help` to see them all.
34 |
35 | The result of the conversion is available in the `lib/` directory.
36 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/docs/LICENSE.BSD-2-Clause:
--------------------------------------------------------------------------------
1 | Copyright (c) ,
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 | * Redistributions in binary form must reproduce the above copyright
10 | notice, this list of conditions and the following disclaimer in the
11 | documentation and/or other materials provided with the distribution.
12 |
13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
14 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16 | DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
17 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
20 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/docs/LICENSE.BSD-3-Clause:
--------------------------------------------------------------------------------
1 | Copyright (c) ,
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 | * Redistributions of source code must retain the above copyright
7 | notice, this list of conditions and the following disclaimer.
8 | * Redistributions in binary form must reproduce the above copyright
9 | notice, this list of conditions and the following disclaimer in the
10 | documentation and/or other materials provided with the distribution.
11 | * Neither the name of the nor the
12 | names of its contributors may be used to endorse or promote products
13 | derived from this software without specific prior written permission.
14 |
15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 | DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/docs/flash_policy.txt:
--------------------------------------------------------------------------------
1 | Manual setup:
2 |
3 | DATA="echo \'\'"
4 | /usr/bin/socat -T 1 TCP-L:843,reuseaddr,fork,crlf SYSTEM:"$DATA"
5 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/docs/links:
--------------------------------------------------------------------------------
1 | New tight PNG protocol:
2 | http://wiki.qemu.org/VNC_Tight_PNG
3 | http://xf.iksaif.net/blog/index.php?post/2010/06/14/QEMU:-Tight-PNG-and-some-profiling
4 |
5 | RFB protocol and extensions:
6 | http://tigervnc.org/cgi-bin/rfbproto
7 |
8 | Canvas Browser Compatibility:
9 | http://philip.html5.org/tests/canvas/suite/tests/results.html
10 |
11 | WebSockets API standard:
12 | http://www.whatwg.org/specs/web-apps/current-work/complete.html#websocket
13 | http://dev.w3.org/html5/websockets/
14 | http://www.ietf.org/id/draft-ietf-hybi-thewebsocketprotocol-00.txt
15 |
16 | Browser Keyboard Events detailed:
17 | http://unixpapa.com/js/key.html
18 |
19 | ActionScript (Flash) WebSocket implementation:
20 | http://github.com/gimite/web-socket-js
21 |
22 | ActionScript (Flash) crypto/TLS library:
23 | http://code.google.com/p/as3crypto
24 | http://github.com/lyokato/as3crypto_patched
25 |
26 | TLS Protocol:
27 | http://en.wikipedia.org/wiki/Transport_Layer_Security
28 |
29 | Generate self-signed certificate:
30 | http://docs.python.org/dev/library/ssl.html#certificates
31 |
32 | Cursor appearance/style (for Cursor pseudo-encoding):
33 | http://en.wikipedia.org/wiki/ICO_(file_format)
34 | http://www.daubnet.com/en/file-format-cur
35 | https://developer.mozilla.org/en/Using_URL_values_for_the_cursor_property
36 | http://www.fileformat.info/format/bmp/egff.htm
37 |
38 | Icon/Cursor file format:
39 | http://msdn.microsoft.com/en-us/library/ms997538
40 | http://msdn.microsoft.com/en-us/library/aa921550.aspx
41 | http://msdn.microsoft.com/en-us/library/aa930622.aspx
42 |
43 |
44 | RDP Protocol specification:
45 | http://msdn.microsoft.com/en-us/library/cc240445(v=PROT.10).aspx
46 |
47 |
48 | Related projects:
49 |
50 | guacamole: http://guacamole.sourceforge.net/
51 |
52 | - Web client, but Java servlet does pre-processing
53 |
54 | jsvnc: http://code.google.com/p/jsvnc/
55 |
56 | - No releases
57 |
58 | webvnc: http://code.google.com/p/webvnc/
59 |
60 | - Jetty web server gateway, no updates since April 2008.
61 |
62 | RealVNC Java applet: http://www.realvnc.com/support/javavncviewer.html
63 |
64 | - Java applet
65 |
66 | Flashlight-VNC: http://www.wizhelp.com/flashlight-vnc/
67 |
68 | - Adobe Flash implementation
69 |
70 | FVNC: http://osflash.org/fvnc
71 |
72 | - Adbove Flash implementation
73 |
74 | CanVNC: http://canvnc.sourceforge.net/
75 |
76 | - HTML client with REST to VNC python proxy. Mostly vapor.
77 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/docs/notes:
--------------------------------------------------------------------------------
1 | Rebuilding inflator.js
2 |
3 | - Download pako from npm
4 | - Install browserify using npm
5 | - browserify core/inflator.mod.js -o core/inflator.js -s Inflator
6 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/docs/rfbproto-3.3.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/docs/rfbproto-3.3.pdf
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/docs/rfbproto-3.7.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/docs/rfbproto-3.7.pdf
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/docs/rfbproto-3.8.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yuvipanda/jupyter-desktop-server/a827f9ccf5c5ec22846b0795df13dcbcb9c6a7af/jupyter_desktop/share/web/noVNC-1.2.0/docs/rfbproto-3.8.pdf
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/karma.conf.js:
--------------------------------------------------------------------------------
1 | // Karma configuration
2 |
3 | // The Safari launcher is broken, so construct our own
4 | function SafariBrowser(id, baseBrowserDecorator, args) {
5 | baseBrowserDecorator(this);
6 |
7 | this._start = function(url) {
8 | this._execCommand('/usr/bin/open', ['-W', '-n', '-a', 'Safari', url]);
9 | }
10 | }
11 |
12 | SafariBrowser.prototype = {
13 | name: 'Safari'
14 | }
15 |
16 | module.exports = (config) => {
17 | let browsers = [];
18 |
19 | if (process.env.TEST_BROWSER_NAME) {
20 | browsers = process.env.TEST_BROWSER_NAME.split(',');
21 | }
22 |
23 | const my_conf = {
24 |
25 | // base path that will be used to resolve all patterns (eg. files, exclude)
26 | basePath: '',
27 |
28 | // frameworks to use
29 | // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
30 | frameworks: ['mocha', 'sinon-chai'],
31 |
32 | // list of files / patterns to load in the browser (loaded in order)
33 | files: [
34 | { pattern: 'app/localization.js', included: false },
35 | { pattern: 'app/webutil.js', included: false },
36 | { pattern: 'core/**/*.js', included: false },
37 | { pattern: 'vendor/pako/**/*.js', included: false },
38 | { pattern: 'vendor/browser-es-module-loader/dist/*.js*', included: false },
39 | { pattern: 'tests/test.*.js', included: false },
40 | { pattern: 'tests/fake.*.js', included: false },
41 | { pattern: 'tests/assertions.js', included: false },
42 | 'vendor/promise.js',
43 | 'tests/karma-test-main.js',
44 | ],
45 |
46 | client: {
47 | mocha: {
48 | // replace Karma debug page with mocha display
49 | 'reporter': 'html',
50 | 'ui': 'bdd'
51 | }
52 | },
53 |
54 | // list of files to exclude
55 | exclude: [
56 | ],
57 |
58 | plugins: [
59 | 'karma-*',
60 | '@chiragrupani/karma-chromium-edge-launcher',
61 | { 'launcher:Safari': [ 'type', SafariBrowser ] },
62 | ],
63 |
64 | // start these browsers
65 | // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
66 | browsers: browsers,
67 |
68 | // test results reporter to use
69 | // possible values: 'dots', 'progress'
70 | // available reporters: https://npmjs.org/browse/keyword/karma-reporter
71 | reporters: ['mocha'],
72 |
73 |
74 | // level of logging
75 | // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
76 | logLevel: config.LOG_INFO,
77 |
78 |
79 | // enable / disable watching file and executing tests whenever any file changes
80 | autoWatch: false,
81 |
82 | // Continuous Integration mode
83 | // if true, Karma captures browsers, runs the tests and exits
84 | singleRun: true,
85 | };
86 |
87 | config.set(my_conf);
88 | };
89 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@novnc/novnc",
3 | "version": "1.2.0",
4 | "description": "An HTML5 VNC client",
5 | "browser": "lib/rfb",
6 | "directories": {
7 | "lib": "lib",
8 | "doc": "docs",
9 | "test": "tests"
10 | },
11 | "files": [
12 | "lib",
13 | "AUTHORS",
14 | "VERSION",
15 | "docs/API.md",
16 | "docs/LIBRARY.md",
17 | "docs/LICENSE*",
18 | "core",
19 | "vendor/pako"
20 | ],
21 | "scripts": {
22 | "lint": "eslint app core po/po2js po/xgettext-html tests utils",
23 | "test": "karma start karma.conf.js",
24 | "prepublish": "node ./utils/use_require.js --as commonjs --clean"
25 | },
26 | "repository": {
27 | "type": "git",
28 | "url": "git+https://github.com/novnc/noVNC.git"
29 | },
30 | "author": "Joel Martin (https://github.com/kanaka)",
31 | "contributors": [
32 | "Solly Ross (https://github.com/directxman12)",
33 | "Peter Åstrand (https://github.com/astrand)",
34 | "Samuel Mannehed (https://github.com/samhed)",
35 | "Pierre Ossman (https://github.com/CendioOssman)"
36 | ],
37 | "license": "MPL-2.0",
38 | "bugs": {
39 | "url": "https://github.com/novnc/noVNC/issues"
40 | },
41 | "homepage": "https://github.com/novnc/noVNC",
42 | "devDependencies": {
43 | "@babel/core": "*",
44 | "@babel/plugin-syntax-dynamic-import": "*",
45 | "@babel/plugin-transform-modules-amd": "*",
46 | "@babel/plugin-transform-modules-commonjs": "*",
47 | "@babel/plugin-transform-modules-systemjs": "*",
48 | "@babel/plugin-transform-modules-umd": "*",
49 | "@babel/preset-env": "*",
50 | "@babel/cli": "*",
51 | "babel-plugin-import-redirect": "*",
52 | "browserify": "*",
53 | "babelify": "*",
54 | "core-js": "*",
55 | "chai": "*",
56 | "commander": "*",
57 | "es-module-loader": "*",
58 | "eslint": "*",
59 | "fs-extra": "*",
60 | "jsdom": "*",
61 | "karma": "*",
62 | "karma-mocha": "*",
63 | "karma-chrome-launcher": "*",
64 | "@chiragrupani/karma-chromium-edge-launcher": "*",
65 | "karma-firefox-launcher": "*",
66 | "karma-ie-launcher": "*",
67 | "karma-mocha-reporter": "*",
68 | "karma-safari-launcher": "*",
69 | "karma-script-launcher": "*",
70 | "karma-sinon-chai": "*",
71 | "mocha": "*",
72 | "node-getopt": "*",
73 | "po2json": "*",
74 | "requirejs": "*",
75 | "rollup": "*",
76 | "rollup-plugin-node-resolve": "*",
77 | "sinon": "*",
78 | "sinon-chai": "*"
79 | },
80 | "dependencies": {},
81 | "keywords": [
82 | "vnc",
83 | "rfb",
84 | "novnc",
85 | "websockify"
86 | ]
87 | }
88 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/po/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "node": true,
4 | },
5 | }
6 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/po/Makefile:
--------------------------------------------------------------------------------
1 | all:
2 | .PHONY: update-po update-js update-pot
3 |
4 | LINGUAS := cs de el es ja ko nl pl ru sv tr zh_CN zh_TW
5 |
6 | VERSION := $(shell grep '"version"' ../package.json | cut -d '"' -f 4)
7 |
8 | POFILES := $(addsuffix .po,$(LINGUAS))
9 | JSONFILES := $(addprefix ../app/locale/,$(addsuffix .json,$(LINGUAS)))
10 |
11 | update-po: $(POFILES)
12 | update-js: $(JSONFILES)
13 |
14 | %.po: noVNC.pot
15 | msgmerge --update --lang=$* $@ $<
16 | ../app/locale/%.json: %.po
17 | ./po2js $< $@
18 |
19 | update-pot:
20 | xgettext --output=noVNC.js.pot \
21 | --copyright-holder="The noVNC Authors" \
22 | --package-name="noVNC" \
23 | --package-version="$(VERSION)" \
24 | --msgid-bugs-address="novnc@googlegroups.com" \
25 | --add-comments=TRANSLATORS: \
26 | --from-code=UTF-8 \
27 | --sort-by-file \
28 | ../app/*.js \
29 | ../core/*.js \
30 | ../core/input/*.js
31 | ./xgettext-html --output=noVNC.html.pot \
32 | ../vnc.html
33 | msgcat --output-file=noVNC.pot \
34 | --sort-by-file noVNC.js.pot noVNC.html.pot
35 | rm -f noVNC.js.pot noVNC.html.pot
36 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/po/po2js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | /*
3 | * ps2js: gettext .po to noVNC .js converter
4 | * Copyright (C) 2018 The noVNC Authors
5 | *
6 | * This program is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program. If not, see .
18 | */
19 |
20 | const getopt = require('node-getopt');
21 | const fs = require('fs');
22 | const po2json = require("po2json");
23 |
24 | const opt = getopt.create([
25 | ['h', 'help', 'display this help'],
26 | ]).bindHelp().parseSystem();
27 |
28 | if (opt.argv.length != 2) {
29 | console.error("Incorrect number of arguments given");
30 | process.exit(1);
31 | }
32 |
33 | const data = po2json.parseFileSync(opt.argv[0]);
34 |
35 | const bodyPart = Object.keys(data).filter(msgid => msgid !== "").map((msgid) => {
36 | if (msgid === "") return;
37 | const msgstr = data[msgid][1];
38 | return " " + JSON.stringify(msgid) + ": " + JSON.stringify(msgstr);
39 | }).join(",\n");
40 |
41 | const output = "{\n" + bodyPart + "\n}";
42 |
43 | fs.writeFileSync(opt.argv[1], output);
44 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/po/xgettext-html:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | /*
3 | * xgettext-html: HTML gettext parser
4 | * Copyright (C) 2018 The noVNC Authors
5 | * Licensed under MPL 2.0 (see LICENSE.txt)
6 | */
7 |
8 | const getopt = require('node-getopt');
9 | const jsdom = require("jsdom");
10 | const fs = require("fs");
11 |
12 | const opt = getopt.create([
13 | ['o', 'output=FILE', 'write output to specified file'],
14 | ['h', 'help', 'display this help'],
15 | ]).bindHelp().parseSystem();
16 |
17 | const strings = {};
18 |
19 | function addString(str, location) {
20 | if (str.length == 0) {
21 | return;
22 | }
23 |
24 | if (strings[str] === undefined) {
25 | strings[str] = {};
26 | }
27 | strings[str][location] = null;
28 | }
29 |
30 | // See https://html.spec.whatwg.org/multipage/dom.html#attr-translate
31 | function process(elem, locator, enabled) {
32 | function isAnyOf(searchElement, items) {
33 | return items.indexOf(searchElement) !== -1;
34 | }
35 |
36 | if (elem.hasAttribute("translate")) {
37 | if (isAnyOf(elem.getAttribute("translate"), ["", "yes"])) {
38 | enabled = true;
39 | } else if (isAnyOf(elem.getAttribute("translate"), ["no"])) {
40 | enabled = false;
41 | }
42 | }
43 |
44 | if (enabled) {
45 | if (elem.hasAttribute("abbr") &&
46 | elem.tagName === "TH") {
47 | addString(elem.getAttribute("abbr"), locator(elem));
48 | }
49 | if (elem.hasAttribute("alt") &&
50 | isAnyOf(elem.tagName, ["AREA", "IMG", "INPUT"])) {
51 | addString(elem.getAttribute("alt"), locator(elem));
52 | }
53 | if (elem.hasAttribute("download") &&
54 | isAnyOf(elem.tagName, ["A", "AREA"])) {
55 | addString(elem.getAttribute("download"), locator(elem));
56 | }
57 | if (elem.hasAttribute("label") &&
58 | isAnyOf(elem.tagName, ["MENUITEM", "MENU", "OPTGROUP",
59 | "OPTION", "TRACK"])) {
60 | addString(elem.getAttribute("label"), locator(elem));
61 | }
62 | if (elem.hasAttribute("placeholder") &&
63 | isAnyOf(elem.tagName in ["INPUT", "TEXTAREA"])) {
64 | addString(elem.getAttribute("placeholder"), locator(elem));
65 | }
66 | if (elem.hasAttribute("title")) {
67 | addString(elem.getAttribute("title"), locator(elem));
68 | }
69 | if (elem.hasAttribute("value") &&
70 | elem.tagName === "INPUT" &&
71 | isAnyOf(elem.getAttribute("type"), ["reset", "button", "submit"])) {
72 | addString(elem.getAttribute("value"), locator(elem));
73 | }
74 | }
75 |
76 | for (let i = 0; i < elem.childNodes.length; i++) {
77 | let node = elem.childNodes[i];
78 | if (node.nodeType === node.ELEMENT_NODE) {
79 | process(node, locator, enabled);
80 | } else if (node.nodeType === node.TEXT_NODE && enabled) {
81 | addString(node.data.trim(), locator(node));
82 | }
83 | }
84 | }
85 |
86 | for (let i = 0; i < opt.argv.length; i++) {
87 | const fn = opt.argv[i];
88 | const file = fs.readFileSync(fn, "utf8");
89 | const dom = new jsdom.JSDOM(file, { includeNodeLocations: true });
90 | const body = dom.window.document.body;
91 |
92 | let locator = (elem) => {
93 | const offset = dom.nodeLocation(elem).startOffset;
94 | const line = file.slice(0, offset).split("\n").length;
95 | return fn + ":" + line;
96 | };
97 |
98 | process(body, locator, true);
99 | }
100 |
101 | let output = "";
102 |
103 | for (let str in strings) {
104 | output += "#:";
105 | for (location in strings[str]) {
106 | output += " " + location;
107 | }
108 | output += "\n";
109 |
110 | output += "msgid " + JSON.stringify(str) + "\n";
111 | output += "msgstr \"\"\n";
112 | output += "\n";
113 | }
114 |
115 | fs.writeFileSync(opt.options.output, output);
116 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/snap/hooks/configure:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 |
3 | snapctl restart novnc.novncsvc
4 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/snap/local/svc_wrapper.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # `snapctl get services` returns a JSON array, example:
4 | #{
5 | #"n6801": {
6 | # "listen": 6801,
7 | # "vnc": "localhost:5901"
8 | #},
9 | #"n6802": {
10 | # "listen": 6802,
11 | # "vnc": "localhost:5902"
12 | #}
13 | #}
14 | snapctl get services | jq -c '.[]' | while read service; do # for each service the user sepcified..
15 | # get the important data for the service (listen port, VNC host:port)
16 | listen_port="$(echo $service | jq --raw-output '.listen')"
17 | vnc_host_port="$(echo $service | jq --raw-output '.vnc')" # --raw-output removes any quotation marks from the output
18 |
19 | # check whether those values are valid
20 | expr "$listen_port" : '^[0-9]\+$' > /dev/null
21 | listen_port_valid=$?
22 | if [ ! $listen_port_valid ] || [ -z "$vnc_host_port" ]; then
23 | # invalid values mean the service is disabled, do nothing except for printing a message (logged in /var/log/system or systemd journal)
24 | echo "novnc: not starting service ${service} with listen_port ${listen_port} and vnc_host_port ${vnc_host_port}"
25 | else
26 | # start (and fork with '&') the service using the specified listen port and VNC host:port
27 | $SNAP/launch.sh --listen $listen_port --vnc $vnc_host_port &
28 | fi
29 | done
30 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/snap/snapcraft.yaml:
--------------------------------------------------------------------------------
1 | name: novnc
2 | base: core18 # the base snap is the execution environment for this snap
3 | version: '@VERSION@'
4 | summary: Open Source VNC client using HTML5 (WebSockets, Canvas)
5 | description: |
6 | Open Source VNC client using HTML5 (WebSockets, Canvas).
7 | noVNC is both a VNC client JavaScript library as well as an
8 | application built on top of that library. noVNC runs well in any
9 | modern browser including mobile browsers (iOS and Android).
10 |
11 | grade: stable
12 | confinement: strict
13 |
14 | parts:
15 | novnc:
16 | source: build/
17 | plugin: dump
18 | stage-packages:
19 | - websockify
20 | - bash
21 | - jq
22 | - python-numpy
23 | - python3-numpy
24 |
25 | hooks:
26 | configure:
27 | plugs: [network, network-bind]
28 |
29 | apps:
30 | novnc:
31 | command: ./launch.sh
32 | plugs: [network, network-bind]
33 | novncsvc:
34 | command: ./svc_wrapper.sh
35 | daemon: forking
36 | plugs: [network, network-bind]
37 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/tests/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "node": true,
4 | "mocha": true
5 | },
6 | "globals": {
7 | "chai": false,
8 | "sinon": false
9 | },
10 | "rules": {
11 | "prefer-arrow-callback": 0,
12 | // Too many anonymous callbacks
13 | "func-names": "off",
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/tests/fake.websocket.js:
--------------------------------------------------------------------------------
1 | import Base64 from '../core/base64.js';
2 |
3 | // PhantomJS can't create Event objects directly, so we need to use this
4 | function makeEvent(name, props) {
5 | const evt = document.createEvent('Event');
6 | evt.initEvent(name, true, true);
7 | if (props) {
8 | for (let prop in props) {
9 | evt[prop] = props[prop];
10 | }
11 | }
12 | return evt;
13 | }
14 |
15 | export default class FakeWebSocket {
16 | constructor(uri, protocols) {
17 | this.url = uri;
18 | this.binaryType = "arraybuffer";
19 | this.extensions = "";
20 |
21 | if (!protocols || typeof protocols === 'string') {
22 | this.protocol = protocols;
23 | } else {
24 | this.protocol = protocols[0];
25 | }
26 |
27 | this._sendQueue = new Uint8Array(20000);
28 |
29 | this.readyState = FakeWebSocket.CONNECTING;
30 | this.bufferedAmount = 0;
31 |
32 | this._isFake = true;
33 | }
34 |
35 | close(code, reason) {
36 | this.readyState = FakeWebSocket.CLOSED;
37 | if (this.onclose) {
38 | this.onclose(makeEvent("close", { 'code': code, 'reason': reason, 'wasClean': true }));
39 | }
40 | }
41 |
42 | send(data) {
43 | if (this.protocol == 'base64') {
44 | data = Base64.decode(data);
45 | } else {
46 | data = new Uint8Array(data);
47 | }
48 | this._sendQueue.set(data, this.bufferedAmount);
49 | this.bufferedAmount += data.length;
50 | }
51 |
52 | _getSentData() {
53 | const res = new Uint8Array(this._sendQueue.buffer, 0, this.bufferedAmount);
54 | this.bufferedAmount = 0;
55 | return res;
56 | }
57 |
58 | _open() {
59 | this.readyState = FakeWebSocket.OPEN;
60 | if (this.onopen) {
61 | this.onopen(makeEvent('open'));
62 | }
63 | }
64 |
65 | _receiveData(data) {
66 | // Break apart the data to expose bugs where we assume data is
67 | // neatly packaged
68 | for (let i = 0;i < data.length;i++) {
69 | let buf = data.subarray(i, i+1);
70 | this.onmessage(makeEvent("message", { 'data': buf }));
71 | }
72 | }
73 | }
74 |
75 | FakeWebSocket.OPEN = WebSocket.OPEN;
76 | FakeWebSocket.CONNECTING = WebSocket.CONNECTING;
77 | FakeWebSocket.CLOSING = WebSocket.CLOSING;
78 | FakeWebSocket.CLOSED = WebSocket.CLOSED;
79 |
80 | FakeWebSocket._isFake = true;
81 |
82 | FakeWebSocket.replace = () => {
83 | if (!WebSocket._isFake) {
84 | const realVersion = WebSocket;
85 | // eslint-disable-next-line no-global-assign
86 | WebSocket = FakeWebSocket;
87 | FakeWebSocket._realVersion = realVersion;
88 | }
89 | };
90 |
91 | FakeWebSocket.restore = () => {
92 | if (WebSocket._isFake) {
93 | // eslint-disable-next-line no-global-assign
94 | WebSocket = WebSocket._realVersion;
95 | }
96 | };
97 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/tests/karma-test-main.js:
--------------------------------------------------------------------------------
1 | const TEST_REGEXP = /test\..*\.js/;
2 | const allTestFiles = [];
3 | const extraFiles = ['/base/tests/assertions.js'];
4 |
5 | Object.keys(window.__karma__.files).forEach(function (file) {
6 | if (TEST_REGEXP.test(file)) {
7 | // TODO: normalize?
8 | allTestFiles.push(file);
9 | }
10 | });
11 |
12 | // Stub out mocha's start function so we can run it once we're done loading
13 | mocha.origRun = mocha.run;
14 | mocha.run = function () {};
15 |
16 | let script;
17 |
18 | // Script to import all our tests
19 | script = document.createElement("script");
20 | script.type = "module";
21 | script.text = "";
22 | let allModules = allTestFiles.concat(extraFiles);
23 | allModules.forEach(function (file) {
24 | script.text += "import \"" + file + "\";\n";
25 | });
26 | script.text += "\nmocha.origRun();\n";
27 | document.body.appendChild(script);
28 |
29 | // Fallback code for browsers that don't support modules (IE)
30 | script = document.createElement("script");
31 | script.type = "module";
32 | script.text = "window._noVNC_has_module_support = true;\n";
33 | document.body.appendChild(script);
34 |
35 | function fallback() {
36 | if (!window._noVNC_has_module_support) {
37 | /* eslint-disable no-console */
38 | if (console) {
39 | console.log("No module support detected. Loading fallback...");
40 | }
41 | /* eslint-enable no-console */
42 | let loader = document.createElement("script");
43 | loader.src = "base/vendor/browser-es-module-loader/dist/browser-es-module-loader.js";
44 | document.body.appendChild(loader);
45 | }
46 | }
47 |
48 | setTimeout(fallback, 500);
49 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/tests/test.base64.js:
--------------------------------------------------------------------------------
1 | const expect = chai.expect;
2 |
3 | import Base64 from '../core/base64.js';
4 |
5 | describe('Base64 Tools', function () {
6 | "use strict";
7 |
8 | const BIN_ARR = new Array(256);
9 | for (let i = 0; i < 256; i++) {
10 | BIN_ARR[i] = i;
11 | }
12 |
13 | const B64_STR = "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==";
14 |
15 |
16 | describe('encode', function () {
17 | it('should encode a binary string into Base64', function () {
18 | const encoded = Base64.encode(BIN_ARR);
19 | expect(encoded).to.equal(B64_STR);
20 | });
21 | });
22 |
23 | describe('decode', function () {
24 | it('should decode a Base64 string into a normal string', function () {
25 | const decoded = Base64.decode(B64_STR);
26 | expect(decoded).to.deep.equal(BIN_ARR);
27 | });
28 |
29 | it('should throw an error if we have extra characters at the end of the string', function () {
30 | expect(() => Base64.decode(B64_STR+'abcdef')).to.throw(Error);
31 | });
32 | });
33 | });
34 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/tests/test.deflator.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-console */
2 | const expect = chai.expect;
3 |
4 | import { inflateInit, inflate } from "../vendor/pako/lib/zlib/inflate.js";
5 | import ZStream from "../vendor/pako/lib/zlib/zstream.js";
6 | import Deflator from "../core/deflator.js";
7 |
8 | function _inflator(compText, expected) {
9 | let strm = new ZStream();
10 | let chunkSize = 1024 * 10 * 10;
11 | strm.output = new Uint8Array(chunkSize);
12 |
13 | inflateInit(strm, 5);
14 |
15 | if (expected > chunkSize) {
16 | chunkSize = expected;
17 | strm.output = new Uint8Array(chunkSize);
18 | }
19 |
20 | /* eslint-disable camelcase */
21 | strm.input = compText;
22 | strm.avail_in = strm.input.length;
23 | strm.next_in = 0;
24 |
25 | strm.next_out = 0;
26 | strm.avail_out = expected.length;
27 | /* eslint-enable camelcase */
28 |
29 | let ret = inflate(strm, 0);
30 |
31 | // Check that return code is not an error
32 | expect(ret).to.be.greaterThan(-1);
33 |
34 | return new Uint8Array(strm.output.buffer, 0, strm.next_out);
35 | }
36 |
37 | describe('Deflate data', function () {
38 |
39 | it('should be able to deflate messages', function () {
40 | let deflator = new Deflator();
41 |
42 | let text = "123asdf";
43 | let preText = new Uint8Array(text.length);
44 | for (let i = 0; i < preText.length; i++) {
45 | preText[i] = text.charCodeAt(i);
46 | }
47 |
48 | let compText = deflator.deflate(preText);
49 |
50 | let inflatedText = _inflator(compText, text.length);
51 | expect(inflatedText).to.array.equal(preText);
52 |
53 | });
54 |
55 | it('should be able to deflate large messages', function () {
56 | let deflator = new Deflator();
57 |
58 | /* Generate a big string with random characters. Used because
59 | repetition of letters might be deflated more effectively than
60 | random ones. */
61 | let text = "";
62 | let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
63 | for (let i = 0; i < 300000; i++) {
64 | text += characters.charAt(Math.floor(Math.random() * characters.length));
65 | }
66 |
67 | let preText = new Uint8Array(text.length);
68 | for (let i = 0; i < preText.length; i++) {
69 | preText[i] = text.charCodeAt(i);
70 | }
71 |
72 | let compText = deflator.deflate(preText);
73 |
74 | //Check that the compressed size is expected size
75 | expect(compText.length).to.be.greaterThan((1024 * 10 * 10) * 2);
76 |
77 | let inflatedText = _inflator(compText, text.length);
78 |
79 | expect(inflatedText).to.array.equal(preText);
80 |
81 | });
82 | });
83 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/tests/test.int.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-console */
2 | const expect = chai.expect;
3 |
4 | import { toUnsigned32bit, toSigned32bit } from '../core/util/int.js';
5 |
6 | describe('Integer casting', function () {
7 | it('should cast unsigned to signed', function () {
8 | let expected = 4294967286;
9 | expect(toUnsigned32bit(-10)).to.equal(expected);
10 | });
11 |
12 | it('should cast signed to unsigned', function () {
13 | let expected = -10;
14 | expect(toSigned32bit(4294967286)).to.equal(expected);
15 | });
16 | });
17 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/tests/test.localization.js:
--------------------------------------------------------------------------------
1 | const expect = chai.expect;
2 | import { l10n } from '../app/localization.js';
3 |
4 | describe('Localization', function () {
5 | "use strict";
6 |
7 | describe('language selection', function () {
8 | let origNavigator;
9 | beforeEach(function () {
10 | // window.navigator is a protected read-only property in many
11 | // environments, so we need to redefine it whilst running these
12 | // tests.
13 | origNavigator = Object.getOwnPropertyDescriptor(window, "navigator");
14 | if (origNavigator === undefined) {
15 | // Object.getOwnPropertyDescriptor() doesn't work
16 | // properly in any version of IE
17 | this.skip();
18 | }
19 |
20 | Object.defineProperty(window, "navigator", {value: {}});
21 | if (window.navigator.languages !== undefined) {
22 | // Object.defineProperty() doesn't work properly in old
23 | // versions of Chrome
24 | this.skip();
25 | }
26 |
27 | window.navigator.languages = [];
28 | });
29 | afterEach(function () {
30 | if (origNavigator !== undefined) {
31 | Object.defineProperty(window, "navigator", origNavigator);
32 | }
33 | });
34 |
35 | it('should use English by default', function () {
36 | expect(l10n.language).to.equal('en');
37 | });
38 | it('should use English if no user language matches', function () {
39 | window.navigator.languages = ["nl", "de"];
40 | l10n.setup(["es", "fr"]);
41 | expect(l10n.language).to.equal('en');
42 | });
43 | it('should use the most preferred user language', function () {
44 | window.navigator.languages = ["nl", "de", "fr"];
45 | l10n.setup(["es", "fr", "de"]);
46 | expect(l10n.language).to.equal('de');
47 | });
48 | it('should prefer sub-languages languages', function () {
49 | window.navigator.languages = ["pt-BR"];
50 | l10n.setup(["pt", "pt-BR"]);
51 | expect(l10n.language).to.equal('pt-BR');
52 | });
53 | it('should fall back to language "parents"', function () {
54 | window.navigator.languages = ["pt-BR"];
55 | l10n.setup(["fr", "pt", "de"]);
56 | expect(l10n.language).to.equal('pt');
57 | });
58 | it('should not use specific language when user asks for a generic language', function () {
59 | window.navigator.languages = ["pt", "de"];
60 | l10n.setup(["fr", "pt-BR", "de"]);
61 | expect(l10n.language).to.equal('de');
62 | });
63 | it('should handle underscore as a separator', function () {
64 | window.navigator.languages = ["pt-BR"];
65 | l10n.setup(["pt_BR"]);
66 | expect(l10n.language).to.equal('pt_BR');
67 | });
68 | it('should handle difference in case', function () {
69 | window.navigator.languages = ["pt-br"];
70 | l10n.setup(["pt-BR"]);
71 | expect(l10n.language).to.equal('pt-BR');
72 | });
73 | });
74 | });
75 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/tests/test.util.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-console */
2 | const expect = chai.expect;
3 |
4 | import * as Log from '../core/util/logging.js';
5 | import { encodeUTF8, decodeUTF8 } from '../core/util/strings.js';
6 |
7 | describe('Utils', function () {
8 | "use strict";
9 |
10 | describe('logging functions', function () {
11 | beforeEach(function () {
12 | sinon.spy(console, 'log');
13 | sinon.spy(console, 'debug');
14 | sinon.spy(console, 'warn');
15 | sinon.spy(console, 'error');
16 | sinon.spy(console, 'info');
17 | });
18 |
19 | afterEach(function () {
20 | console.log.restore();
21 | console.debug.restore();
22 | console.warn.restore();
23 | console.error.restore();
24 | console.info.restore();
25 | Log.initLogging();
26 | });
27 |
28 | it('should use noop for levels lower than the min level', function () {
29 | Log.initLogging('warn');
30 | Log.Debug('hi');
31 | Log.Info('hello');
32 | expect(console.log).to.not.have.been.called;
33 | });
34 |
35 | it('should use console.debug for Debug', function () {
36 | Log.initLogging('debug');
37 | Log.Debug('dbg');
38 | expect(console.debug).to.have.been.calledWith('dbg');
39 | });
40 |
41 | it('should use console.info for Info', function () {
42 | Log.initLogging('debug');
43 | Log.Info('inf');
44 | expect(console.info).to.have.been.calledWith('inf');
45 | });
46 |
47 | it('should use console.warn for Warn', function () {
48 | Log.initLogging('warn');
49 | Log.Warn('wrn');
50 | expect(console.warn).to.have.been.called;
51 | expect(console.warn).to.have.been.calledWith('wrn');
52 | });
53 |
54 | it('should use console.error for Error', function () {
55 | Log.initLogging('error');
56 | Log.Error('err');
57 | expect(console.error).to.have.been.called;
58 | expect(console.error).to.have.been.calledWith('err');
59 | });
60 | });
61 |
62 | describe('string functions', function () {
63 | it('should decode UTF-8 to DOMString correctly', function () {
64 | const utf8string = '\xd0\x9f';
65 | const domstring = decodeUTF8(utf8string);
66 | expect(domstring).to.equal("П");
67 | });
68 |
69 | it('should encode DOMString to UTF-8 correctly', function () {
70 | const domstring = "åäöa";
71 | const utf8string = encodeUTF8(domstring);
72 | expect(utf8string).to.equal('\xc3\xa5\xc3\xa4\xc3\xb6\x61');
73 | });
74 |
75 | it('should allow Latin-1 strings if allowLatin1 is set when decoding', function () {
76 | const latin1string = '\xe5\xe4\xf6';
77 | expect(() => decodeUTF8(latin1string)).to.throw(Error);
78 | expect(decodeUTF8(latin1string, true)).to.equal('åäö');
79 | });
80 | });
81 |
82 | // TODO(directxman12): test the conf_default and conf_defaults methods
83 | // TODO(directxman12): test the event methods (addEvent, removeEvent, stopEvent)
84 | // TODO(directxman12): figure out a good way to test getPosition and getEventPosition
85 | // TODO(directxman12): figure out how to test the browser detection functions properly
86 | // (we can't really test them against the browsers, except for Gecko
87 | // via PhantomJS, the default test driver)
88 | });
89 | /* eslint-enable no-console */
90 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/tests/vnc_playback.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | VNC Playback
5 |
6 |
7 |
8 |
11 |
19 |
20 |
21 |
22 |
23 |
24 | Iterations:
25 | Perftest:
26 | Realtime:
27 |
28 |
29 |
30 |
31 |
32 | Results:
33 |
34 |
35 |
36 |
37 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/utils/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "node": true
4 | },
5 | "rules": {
6 | "no-console": 0
7 | }
8 | }
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/utils/README.md:
--------------------------------------------------------------------------------
1 | ## WebSockets Proxy/Bridge
2 |
3 | Websockify has been forked out into its own project. `launch.sh` wil
4 | automatically download it here if it is not already present and not
5 | installed as system-wide.
6 |
7 | For more detailed description and usage information please refer to
8 | the [websockify README](https://github.com/novnc/websockify/blob/master/README.md).
9 |
10 | The other versions of websockify (C, Node.js) and the associated test
11 | programs have been moved to
12 | [websockify](https://github.com/novnc/websockify). Websockify was
13 | formerly named wsproxy.
14 |
15 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/utils/b64-to-binary.pl:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env perl
2 | use MIME::Base64;
3 |
4 | for (<>) {
5 | unless (/^'([{}])(\d+)\1(.+?)',$/) {
6 | print;
7 | next;
8 | }
9 |
10 | my ($dir, $amt, $b64) = ($1, $2, $3);
11 |
12 | my $decoded = MIME::Base64::decode($b64) or die "Could not base64-decode line `$_`";
13 |
14 | my $decoded_escaped = join "", map { "\\x$_" } unpack("(H2)*", $decoded);
15 |
16 | print "'${dir}${amt}${dir}${decoded_escaped}',\n";
17 | }
18 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/utils/genkeysymdef.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | /*
3 | * genkeysymdef: X11 keysymdef.h to JavaScript converter
4 | * Copyright (C) 2018 The noVNC Authors
5 | * Licensed under MPL 2.0 (see LICENSE.txt)
6 | */
7 |
8 | "use strict";
9 |
10 | const fs = require('fs');
11 |
12 | let showHelp = process.argv.length === 2;
13 | let filename;
14 |
15 | for (let i = 2; i < process.argv.length; ++i) {
16 | switch (process.argv[i]) {
17 | case "--help":
18 | case "-h":
19 | showHelp = true;
20 | break;
21 | case "--file":
22 | case "-f":
23 | default:
24 | filename = process.argv[i];
25 | }
26 | }
27 |
28 | if (!filename) {
29 | showHelp = true;
30 | console.log("Error: No filename specified\n");
31 | }
32 |
33 | if (showHelp) {
34 | console.log("Parses a *nix keysymdef.h to generate Unicode code point mappings");
35 | console.log("Usage: node parse.js [options] filename:");
36 | console.log(" -h [ --help ] Produce this help message");
37 | console.log(" filename The keysymdef.h file to parse");
38 | process.exit(0);
39 | }
40 |
41 | const buf = fs.readFileSync(filename);
42 | const str = buf.toString('utf8');
43 |
44 | const re = /^#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-fA-F]+)\s*(\/\*\s*(.*)\s*\*\/)?\s*$/m;
45 |
46 | const arr = str.split('\n');
47 |
48 | const codepoints = {};
49 |
50 | for (let i = 0; i < arr.length; ++i) {
51 | const result = re.exec(arr[i]);
52 | if (result) {
53 | const keyname = result[1];
54 | const keysym = parseInt(result[2], 16);
55 | const remainder = result[3];
56 |
57 | const unicodeRes = /U\+([0-9a-fA-F]+)/.exec(remainder);
58 | if (unicodeRes) {
59 | const unicode = parseInt(unicodeRes[1], 16);
60 | // The first entry is the preferred one
61 | if (!codepoints[unicode]) {
62 | codepoints[unicode] = { keysym: keysym, name: keyname };
63 | }
64 | }
65 | }
66 | }
67 |
68 | let out =
69 | "/*\n" +
70 | " * Mapping from Unicode codepoints to X11/RFB keysyms\n" +
71 | " *\n" +
72 | " * This file was automatically generated from keysymdef.h\n" +
73 | " * DO NOT EDIT!\n" +
74 | " */\n" +
75 | "\n" +
76 | "/* Functions at the bottom */\n" +
77 | "\n" +
78 | "const codepoints = {\n";
79 |
80 | function toHex(num) {
81 | let s = num.toString(16);
82 | if (s.length < 4) {
83 | s = ("0000" + s).slice(-4);
84 | }
85 | return "0x" + s;
86 | }
87 |
88 | for (let codepoint in codepoints) {
89 | codepoint = parseInt(codepoint);
90 |
91 | // Latin-1?
92 | if ((codepoint >= 0x20) && (codepoint <= 0xff)) {
93 | continue;
94 | }
95 |
96 | // Handled by the general Unicode mapping?
97 | if ((codepoint | 0x01000000) === codepoints[codepoint].keysym) {
98 | continue;
99 | }
100 |
101 | out += " " + toHex(codepoint) + ": " +
102 | toHex(codepoints[codepoint].keysym) +
103 | ", // XK_" + codepoints[codepoint].name + "\n";
104 | }
105 |
106 | out +=
107 | "};\n" +
108 | "\n" +
109 | "export default {\n" +
110 | " lookup(u) {\n" +
111 | " // Latin-1 is one-to-one mapping\n" +
112 | " if ((u >= 0x20) && (u <= 0xff)) {\n" +
113 | " return u;\n" +
114 | " }\n" +
115 | "\n" +
116 | " // Lookup table (fairly random)\n" +
117 | " const keysym = codepoints[u];\n" +
118 | " if (keysym !== undefined) {\n" +
119 | " return keysym;\n" +
120 | " }\n" +
121 | "\n" +
122 | " // General mapping as final fallback\n" +
123 | " return 0x01000000 | u;\n" +
124 | " },\n" +
125 | "};";
126 |
127 | console.log(out);
128 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/utils/u2x11:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | #
3 | # Convert "U+..." commented entries in /usr/include/X11/keysymdef.h
4 | # into JavaScript for use by noVNC. Note this is likely to produce
5 | # a few duplicate properties with clashing values, that will need
6 | # resolving manually.
7 | #
8 | # Colin Dean
9 | #
10 |
11 | regex="^#define[ \t]+XK_[A-Za-z0-9_]+[ \t]+0x([0-9a-fA-F]+)[ \t]+\/\*[ \t]+U\+([0-9a-fA-F]+)[ \t]+[^*]+.[ \t]+\*\/[ \t]*$"
12 | echo "unicodeTable = {"
13 | while read line; do
14 | if echo "${line}" | egrep -qs "${regex}"; then
15 |
16 | x11=$(echo "${line}" | sed -r "s/${regex}/\1/")
17 | vnc=$(echo "${line}" | sed -r "s/${regex}/\2/")
18 |
19 | if echo "${vnc}" | egrep -qs "^00[2-9A-F][0-9A-F]$"; then
20 | : # skip ISO Latin-1 (U+0020 to U+00FF) as 1-to-1 mapping
21 | else
22 | # note 1-to-1 is possible (e.g. for Euro symbol, U+20AC)
23 | echo " 0x${vnc} : 0x${x11},"
24 | fi
25 | fi
26 | done < /usr/include/X11/keysymdef.h | uniq
27 | echo "};"
28 |
29 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/utils/use_require_helpers.js:
--------------------------------------------------------------------------------
1 | // writes helpers require for vnc.html (they should output app.js)
2 | const fs = require('fs');
3 | const path = require('path');
4 |
5 | // util.promisify requires Node.js 8.x, so we have our own
6 | function promisify(original) {
7 | return function promiseWrap() {
8 | const args = Array.prototype.slice.call(arguments);
9 | return new Promise((resolve, reject) => {
10 | original.apply(this, args.concat((err, value) => {
11 | if (err) return reject(err);
12 | resolve(value);
13 | }));
14 | });
15 | };
16 | }
17 |
18 | const writeFile = promisify(fs.writeFile);
19 |
20 | module.exports = {
21 | 'amd': {
22 | appWriter: (baseOutPath, scriptBasePath, outPath) => {
23 | // setup for requirejs
24 | const uiPath = path.relative(baseOutPath,
25 | path.join(scriptBasePath, 'app', 'ui'));
26 | return writeFile(outPath, `requirejs(["${uiPath}"], function (ui) {});`)
27 | .then(() => {
28 | console.log(`Please place RequireJS in ${path.join(scriptBasePath, 'require.js')}`);
29 | const requirePath = path.relative(baseOutPath,
30 | path.join(scriptBasePath, 'require.js'));
31 | return [ requirePath ];
32 | });
33 | },
34 | },
35 | 'commonjs': {
36 | appWriter: (baseOutPath, scriptBasePath, outPath) => {
37 | const browserify = require('browserify');
38 | const b = browserify(path.join(scriptBasePath, 'app/ui.js'), {});
39 | return promisify(b.bundle).call(b)
40 | .then(buf => writeFile(outPath, buf))
41 | .then(() => []);
42 | },
43 | removeModules: true,
44 | },
45 | 'systemjs': {
46 | appWriter: (baseOutPath, scriptBasePath, outPath) => {
47 | const uiPath = path.relative(baseOutPath,
48 | path.join(scriptBasePath, 'app', 'ui.js'));
49 | return writeFile(outPath, `SystemJS.import("${uiPath}");`)
50 | .then(() => {
51 | console.log(`Please place SystemJS in ${path.join(scriptBasePath, 'system-production.js')}`);
52 | const systemjsPath = path.relative(baseOutPath,
53 | path.join(scriptBasePath, 'system-production.js'));
54 | return [ systemjsPath ];
55 | });
56 | },
57 | },
58 | 'umd': {
59 | },
60 | };
61 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/utils/validate:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | RET=0
6 |
7 | OUT=`mktemp`
8 |
9 | for fn in "$@"; do
10 | echo "Validating $fn..."
11 | echo
12 |
13 | case $fn in
14 | *.html)
15 | type="text/html"
16 | ;;
17 | *.css)
18 | type="text/css"
19 | ;;
20 | *)
21 | echo "Unknown format!"
22 | echo
23 | RET=1
24 | continue
25 | ;;
26 | esac
27 |
28 | curl --silent \
29 | --header "Content-Type: ${type}; charset=utf-8" \
30 | --data-binary @${fn} \
31 | https://validator.w3.org/nu/?out=text > $OUT
32 | cat $OUT
33 | echo
34 |
35 | # We don't fail the check for warnings as some warnings are
36 | # not relevant for us, and we don't currently have a way to
37 | # ignore just those
38 | if grep -q -s -E "^Error:" $OUT; then
39 | RET=1
40 | fi
41 | done
42 |
43 | rm $OUT
44 |
45 | exit $RET
46 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/browser-es-module-loader/README.md:
--------------------------------------------------------------------------------
1 | Custom Browser ES Module Loader
2 | ===============================
3 |
4 | This is a module loader using babel and the ES Module Loader polyfill.
5 | It's based heavily on
6 | https://github.com/ModuleLoader/browser-es-module-loader, but uses
7 | WebWorkers to compile the modules in the background.
8 |
9 | To generate, run `npx rollup -c` in this directory, and then run
10 | `./genworker.js`.
11 |
12 | LICENSE
13 | -------
14 |
15 | MIT
16 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/browser-es-module-loader/genworker.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | var fs = require("fs");
4 | var browserify = require("browserify");
5 |
6 | browserify("src/babel-worker.js")
7 | .transform("babelify", {
8 | presets: [ [ "@babel/preset-env", { targets: "ie >= 11" } ] ],
9 | global: true,
10 | ignore: [ "../../node_modules/core-js" ]
11 | })
12 | .bundle()
13 | .pipe(fs.createWriteStream("dist/babel-worker.js"));
14 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/browser-es-module-loader/rollup.config.js:
--------------------------------------------------------------------------------
1 | import nodeResolve from 'rollup-plugin-node-resolve';
2 |
3 | export default {
4 | input: 'src/browser-es-module-loader.js',
5 | output: {
6 | file: 'dist/browser-es-module-loader.js',
7 | format: 'umd',
8 | name: 'BrowserESModuleLoader',
9 | sourcemap: true,
10 | },
11 |
12 | plugins: [
13 | nodeResolve(),
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/browser-es-module-loader/src/babel-worker.js:
--------------------------------------------------------------------------------
1 | // Polyfills needed for Babel to function
2 | require("core-js");
3 |
4 | var babelTransform = require('@babel/core').transform;
5 | var babelTransformDynamicImport = require('@babel/plugin-syntax-dynamic-import');
6 | var babelTransformModulesSystemJS = require('@babel/plugin-transform-modules-systemjs');
7 | var babelPresetEnv = require('@babel/preset-env');
8 |
9 | self.onmessage = function (evt) {
10 | // transform source with Babel
11 | var output = babelTransform(evt.data.source, {
12 | compact: false,
13 | filename: evt.data.key + '!transpiled',
14 | sourceFileName: evt.data.key,
15 | moduleIds: false,
16 | sourceMaps: 'inline',
17 | babelrc: false,
18 | plugins: [babelTransformDynamicImport, babelTransformModulesSystemJS],
19 | presets: [ [ babelPresetEnv, { targets: 'ie >= 11' } ] ],
20 | });
21 |
22 | self.postMessage({key: evt.data.key, code: output.code, source: evt.data.source});
23 | };
24 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/pako/LICENSE:
--------------------------------------------------------------------------------
1 | (The MIT License)
2 |
3 | Copyright (C) 2014-2016 by Vitaly Puzrin
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/pako/README.md:
--------------------------------------------------------------------------------
1 | This is an ES6-modules-compatible version of
2 | https://github.com/nodeca/pako, based on pako version 1.0.3.
3 |
4 | It's more-or-less a direct translation of the original, with unused parts
5 | removed, and the dynamic support for non-typed arrays removed (since ES6
6 | modules don't work well with dynamic exports).
7 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/pako/lib/utils/common.js:
--------------------------------------------------------------------------------
1 | // reduce buffer size, avoiding mem copy
2 | export function shrinkBuf (buf, size) {
3 | if (buf.length === size) { return buf; }
4 | if (buf.subarray) { return buf.subarray(0, size); }
5 | buf.length = size;
6 | return buf;
7 | };
8 |
9 |
10 | export function arraySet (dest, src, src_offs, len, dest_offs) {
11 | if (src.subarray && dest.subarray) {
12 | dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
13 | return;
14 | }
15 | // Fallback to ordinary array
16 | for (var i = 0; i < len; i++) {
17 | dest[dest_offs + i] = src[src_offs + i];
18 | }
19 | }
20 |
21 | // Join array of chunks to single array.
22 | export function flattenChunks (chunks) {
23 | var i, l, len, pos, chunk, result;
24 |
25 | // calculate data length
26 | len = 0;
27 | for (i = 0, l = chunks.length; i < l; i++) {
28 | len += chunks[i].length;
29 | }
30 |
31 | // join chunks
32 | result = new Uint8Array(len);
33 | pos = 0;
34 | for (i = 0, l = chunks.length; i < l; i++) {
35 | chunk = chunks[i];
36 | result.set(chunk, pos);
37 | pos += chunk.length;
38 | }
39 |
40 | return result;
41 | }
42 |
43 | export var Buf8 = Uint8Array;
44 | export var Buf16 = Uint16Array;
45 | export var Buf32 = Int32Array;
46 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/pako/lib/zlib/adler32.js:
--------------------------------------------------------------------------------
1 | // Note: adler32 takes 12% for level 0 and 2% for level 6.
2 | // It doesn't worth to make additional optimizationa as in original.
3 | // Small size is preferable.
4 |
5 | export default function adler32(adler, buf, len, pos) {
6 | var s1 = (adler & 0xffff) |0,
7 | s2 = ((adler >>> 16) & 0xffff) |0,
8 | n = 0;
9 |
10 | while (len !== 0) {
11 | // Set limit ~ twice less than 5552, to keep
12 | // s2 in 31-bits, because we force signed ints.
13 | // in other case %= will fail.
14 | n = len > 2000 ? 2000 : len;
15 | len -= n;
16 |
17 | do {
18 | s1 = (s1 + buf[pos++]) |0;
19 | s2 = (s2 + s1) |0;
20 | } while (--n);
21 |
22 | s1 %= 65521;
23 | s2 %= 65521;
24 | }
25 |
26 | return (s1 | (s2 << 16)) |0;
27 | }
28 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/pako/lib/zlib/constants.js:
--------------------------------------------------------------------------------
1 | export default {
2 |
3 | /* Allowed flush values; see deflate() and inflate() below for details */
4 | Z_NO_FLUSH: 0,
5 | Z_PARTIAL_FLUSH: 1,
6 | Z_SYNC_FLUSH: 2,
7 | Z_FULL_FLUSH: 3,
8 | Z_FINISH: 4,
9 | Z_BLOCK: 5,
10 | Z_TREES: 6,
11 |
12 | /* Return codes for the compression/decompression functions. Negative values
13 | * are errors, positive values are used for special but normal events.
14 | */
15 | Z_OK: 0,
16 | Z_STREAM_END: 1,
17 | Z_NEED_DICT: 2,
18 | Z_ERRNO: -1,
19 | Z_STREAM_ERROR: -2,
20 | Z_DATA_ERROR: -3,
21 | //Z_MEM_ERROR: -4,
22 | Z_BUF_ERROR: -5,
23 | //Z_VERSION_ERROR: -6,
24 |
25 | /* compression levels */
26 | Z_NO_COMPRESSION: 0,
27 | Z_BEST_SPEED: 1,
28 | Z_BEST_COMPRESSION: 9,
29 | Z_DEFAULT_COMPRESSION: -1,
30 |
31 |
32 | Z_FILTERED: 1,
33 | Z_HUFFMAN_ONLY: 2,
34 | Z_RLE: 3,
35 | Z_FIXED: 4,
36 | Z_DEFAULT_STRATEGY: 0,
37 |
38 | /* Possible values of the data_type field (though see inflate()) */
39 | Z_BINARY: 0,
40 | Z_TEXT: 1,
41 | //Z_ASCII: 1, // = Z_TEXT (deprecated)
42 | Z_UNKNOWN: 2,
43 |
44 | /* The deflate compression method */
45 | Z_DEFLATED: 8
46 | //Z_NULL: null // Use -1 or null inline, depending on var type
47 | };
48 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/pako/lib/zlib/crc32.js:
--------------------------------------------------------------------------------
1 | // Note: we can't get significant speed boost here.
2 | // So write code to minimize size - no pregenerated tables
3 | // and array tools dependencies.
4 |
5 |
6 | // Use ordinary array, since untyped makes no boost here
7 | export default function makeTable() {
8 | var c, table = [];
9 |
10 | for (var n = 0; n < 256; n++) {
11 | c = n;
12 | for (var k = 0; k < 8; k++) {
13 | c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
14 | }
15 | table[n] = c;
16 | }
17 |
18 | return table;
19 | }
20 |
21 | // Create table on load. Just 255 signed longs. Not a problem.
22 | var crcTable = makeTable();
23 |
24 |
25 | function crc32(crc, buf, len, pos) {
26 | var t = crcTable,
27 | end = pos + len;
28 |
29 | crc ^= -1;
30 |
31 | for (var i = pos; i < end; i++) {
32 | crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];
33 | }
34 |
35 | return (crc ^ (-1)); // >>> 0;
36 | }
37 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/pako/lib/zlib/gzheader.js:
--------------------------------------------------------------------------------
1 | export default function GZheader() {
2 | /* true if compressed data believed to be text */
3 | this.text = 0;
4 | /* modification time */
5 | this.time = 0;
6 | /* extra flags (not used when writing a gzip file) */
7 | this.xflags = 0;
8 | /* operating system */
9 | this.os = 0;
10 | /* pointer to extra field or Z_NULL if none */
11 | this.extra = null;
12 | /* extra field length (valid if extra != Z_NULL) */
13 | this.extra_len = 0; // Actually, we don't need it in JS,
14 | // but leave for few code modifications
15 |
16 | //
17 | // Setup limits is not necessary because in js we should not preallocate memory
18 | // for inflate use constant limit in 65536 bytes
19 | //
20 |
21 | /* space at extra (only when reading header) */
22 | // this.extra_max = 0;
23 | /* pointer to zero-terminated file name or Z_NULL */
24 | this.name = '';
25 | /* space at name (only when reading header) */
26 | // this.name_max = 0;
27 | /* pointer to zero-terminated comment or Z_NULL */
28 | this.comment = '';
29 | /* space at comment (only when reading header) */
30 | // this.comm_max = 0;
31 | /* true if there was or will be a header crc */
32 | this.hcrc = 0;
33 | /* true when done reading gzip header (not used when writing a gzip file) */
34 | this.done = false;
35 | }
36 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/pako/lib/zlib/messages.js:
--------------------------------------------------------------------------------
1 | export default {
2 | 2: 'need dictionary', /* Z_NEED_DICT 2 */
3 | 1: 'stream end', /* Z_STREAM_END 1 */
4 | 0: '', /* Z_OK 0 */
5 | '-1': 'file error', /* Z_ERRNO (-1) */
6 | '-2': 'stream error', /* Z_STREAM_ERROR (-2) */
7 | '-3': 'data error', /* Z_DATA_ERROR (-3) */
8 | '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */
9 | '-5': 'buffer error', /* Z_BUF_ERROR (-5) */
10 | '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */
11 | };
12 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/noVNC-1.2.0/vendor/pako/lib/zlib/zstream.js:
--------------------------------------------------------------------------------
1 | export default function ZStream() {
2 | /* next input byte */
3 | this.input = null; // JS specific, because we have no pointers
4 | this.next_in = 0;
5 | /* number of bytes available at input */
6 | this.avail_in = 0;
7 | /* total number of input bytes read so far */
8 | this.total_in = 0;
9 | /* next output byte should be put there */
10 | this.output = null; // JS specific, because we have no pointers
11 | this.next_out = 0;
12 | /* remaining free space at output */
13 | this.avail_out = 0;
14 | /* total number of bytes output so far */
15 | this.total_out = 0;
16 | /* last error message, NULL if no error */
17 | this.msg = ''/*Z_NULL*/;
18 | /* not visible by applications */
19 | this.state = null;
20 | /* best guess about the data type: binary or text */
21 | this.data_type = 2/*Z_UNKNOWN*/;
22 | /* adler32 value of the uncompressed data */
23 | this.adler = 0;
24 | }
25 |
--------------------------------------------------------------------------------
/jupyter_desktop/share/web/novnc-vnc_lite.html.patch:
--------------------------------------------------------------------------------
1 | diff --git a/jupyter_desktop/share/web/noVNC-1.2.0/vnc_lite.html b/jupyter_desktop/share/web/noVNC-1.2.0/vnc_lite.html
2 | index d17ab9e..a9e3e9b 100644
3 | --- a/jupyter_desktop/share/web/noVNC-1.2.0/vnc_lite.html
4 | +++ b/jupyter_desktop/share/web/noVNC-1.2.0/vnc_lite.html
5 | @@ -3,6 +3,8 @@
6 |
7 |
8 |