"use strict";
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getServerSideProps = void 0;
var jsx_runtime_1 = require("react/jsx-runtime");
var antd_1 = require("antd");
var footer_1 = __importDefault(require("components/landing/footer"));
var header_1 = __importDefault(require("components/landing/header"));
var content_1 = __importDefault(require("components/landing/content"));
var A_1 = __importDefault(require("components/misc/A"));
var with_customize_1 = __importDefault(require("lib/with-customize"));
var customize_1 = require("lib/customize");
var sign_in_1 = __importDefault(require("components/landing/sign-in"));
var info_1 = __importDefault(require("components/landing/info"));
var pitch_1 = __importDefault(require("components/landing/pitch"));
var head_1 = __importDefault(require("components/landing/head"));
var snapshots_1 = __importDefault(require("components/landing/snapshots"));
var icon_1 = require("@cocalc/frontend/components/icon");
var latex_1 = __importDefault(require("components/landing/latex"));
var publishing_1 = __importDefault(require("components/landing/publishing"));
var code_1 = __importDefault(require("components/landing/code"));
var python_logo_svg_1 = __importDefault(require("public/features/python-logo.svg"));
var frame_editor_python_png_1 = __importDefault(require("public/features/frame-editor-python.png"));
var cocalc_real_time_jupyter_png_1 = __importDefault(require("public/features/cocalc-real-time-jupyter.png"));
var cocalc_python_jupyter_png_1 = __importDefault(require("public/features/cocalc-python-jupyter.png"));
var cocalc_latex_pythontex_png_1 = __importDefault(require("public/features/cocalc-latex-pythontex.png"));
var cocalc_jupyter_format_python_gif_1 = __importDefault(require("public/features/cocalc-jupyter-format-python.gif"));
var cocalc_frame_editor_python_png_1 = __importDefault(require("public/features/cocalc-frame-editor-python.png"));
var cocalc_jupyter_python_sidechat_png_1 = __importDefault(require("public/features/cocalc-jupyter-python-sidechat.png"));
var component = "Python";
var title = "Run ".concat(component, " Online");
function Octave(_a) {
    var customize = _a.customize;
    return ((0, jsx_runtime_1.jsxs)(customize_1.Customize, __assign({ value: customize }, { children: [(0, jsx_runtime_1.jsx)(head_1.default, { title: title }), (0, jsx_runtime_1.jsxs)(antd_1.Layout, { children: [(0, jsx_runtime_1.jsx)(header_1.default, { page: "features", subPage: "python" }), (0, jsx_runtime_1.jsxs)(antd_1.Layout.Content, { children: [(0, jsx_runtime_1.jsx)("div", __assign({ style: { backgroundColor: "#c7d9f5" } }, { children: (0, jsx_runtime_1.jsx)(content_1.default, { startup: component, logo: python_logo_svg_1.default, title: title, subtitle: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)("div", { children: ["Run ", component, " scripts,", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/features/jupyter-notebook" }, { children: "Jupyter notebooks" })), ", or even a ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/features/x11" }, { children: "graphical application" })), " ", "in a full, remote ", component, " environment."] }) }), subtitleBelow: true, image: frame_editor_python_png_1.default }) })), (0, jsx_runtime_1.jsx)(pitch_1.default, { col1: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("h3", { children: [(0, jsx_runtime_1.jsx)(icon_1.Icon, { name: "global" }), " CoCalc covers all the bases"] }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Data Science and Machine Learning" }), ":", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/howto/upload.html" }, { children: "Upload" })), " ", "your datafiles and analyze them using", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://www.tensorflow.org/" }, { children: "Tensorflow" })), ",", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://scikit-learn.org/stable/" }, { children: "scikit-learn" })), ",", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://keras.io/" }, { children: "Keras" })), ", ... including an", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://www.anaconda.com/distribution/" }, { children: "Anaconda" })), " ", "environment."] }), (0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Mathematics" }), ":", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://www.sympy.org" }, { children: "SymPy" })), ",", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://www.sagemath.org" }, { children: "SageMath" })), ", ..."] }), (0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Statistics" }), ":", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://pandas.pydata.org/" }, { children: "pandas" })), ",", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://www.statsmodels.org/" }, { children: "statsmodels" })), ",", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://rpy2.github.io/" }, { children: "rpy2 (R bridge)" })), ", ..."] }), (0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Visualization" }), ":", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://matplotlib.org/" }, { children: "matplotlib" })), ",", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://plot.ly/python/plotly-fundamentals/" }, { children: "plotly" })), ", ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://seaborn.pydata.org/" }, { children: "seaborn" })), ", ..."] }), (0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Teaching" }), ": learn Python online or teach a course."] })] }), (0, jsx_runtime_1.jsxs)("p", { children: ["Find more details in the", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/software/python" }, { children: "list of installed Python libraries" })), "."] })] }), col2: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("h3", { children: [(0, jsx_runtime_1.jsx)(icon_1.Icon, { name: "lightbulb" }), " Zero setup"] }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsxs)("li", { children: ["Immediately start working by creating or", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/howto/upload.html" }, { children: "uploading" })), ", ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/features/jupyter-notebook" }, { children: "Jupyter Notebooks" })), " ", "or Python scripts."] }), (0, jsx_runtime_1.jsxs)("li", { children: ["No need to download and install", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://www.python.org" }, { children: "Python" })), ",", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://www.anaconda.com/distribution/" }, { children: "Anaconda" })), ", or other Python environments."] }), (0, jsx_runtime_1.jsxs)("li", { children: ["CoCalc already", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/software/python" }, { children: "provides many packages" })), " for you."] }), (0, jsx_runtime_1.jsxs)("li", { children: ["The ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/features/latex-editor" }, { children: "LaTeX editor" })), " is already integrated with", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://ctan.org/pkg/pythontex" }, { children: "PythonTeX" })), " and", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://ctan.org/pkg/sagetex" }, { children: "SageTeX" })), "."] })] })] }) }), (0, jsx_runtime_1.jsx)(sign_in_1.default, { startup: component }), (0, jsx_runtime_1.jsx)(info_1.default.Heading, __assign({ description: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["There are many ways to use ", component, " online via CoCalc."] }) }, { children: "Feature Overview" })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ title: "Collaborative workspaces", icon: "users", image: cocalc_real_time_jupyter_png_1.default, anchor: "a-collaboration", alt: "Editing a Jupyter notebook in two windows at the same time" }, { children: [(0, jsx_runtime_1.jsxs)("p", { children: ["As the name suggests, CoCalc's strength is", " ", (0, jsx_runtime_1.jsx)("strong", { children: "online code collaboration" }), ". Collaboration applies to editing plain Python files,", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/sagews.html" }, { children: "Sage Worksheets" })), ",", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/features/jupyter-notebook" }, { children: "Jupyter Notebooks" })), ", and much more."] }), (0, jsx_runtime_1.jsx)("p", { children: "This enables you to work more effectively as a team to solve the challenges of data science, machine learning and statistics. Every collaborator is always looking at the most recent state of files, and they experience and inspect the same Python state." }), (0, jsx_runtime_1.jsxs)("p", { children: ["You can", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/chat.html" }, { children: "create chatrooms" })), " ", "and get help via", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/chat.html" }, { children: "side chat" })), " by @mentioning collaborators."] })] })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ title: "Python in Jupyter Notebooks", icon: "ipynb", image: cocalc_python_jupyter_png_1.default, anchor: "a-jupyternotebook", wide: true, alt: "Plotting using Matplotlib and Numpy in a Jupyter notebook" }, { children: [(0, jsx_runtime_1.jsxs)("p", { children: ["CoCalc offers a", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/features/jupyter-notebook" }, { children: "complete rewrite" })) }), " ", "of the classical", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "http://jupyter.org/" }, { children: "Jupyter notebook" })), " interface. It is tightly integrated into CoCalc and adds realtime collaboration,", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "http://doc.cocalc.com/jupyter.html" }, { children: "TimeTravel history and much more" })), "."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["The user interface is very similar to Jupyter classic. It uses the same underlying Jupyter notebook file format, so you can download your ", (0, jsx_runtime_1.jsx)(code_1.default, { children: "*.ipynb" }), " file at any time and continue working locally."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["There are several", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/software/python" }, { children: "Python environments available" })), "."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["You can also easily run", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/jupyter.html#classical-versus-cocalc" }, { children: "Jupyter Classical" })), " ", "and JupyterLab in any CoCalc project."] })] })), (0, jsx_runtime_1.jsx)(sign_in_1.default, { startup: component }), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ title: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(latex_1.default, {}), " support for PythonTeX/SageTeX"] }), icon: "tex-file", image: cocalc_latex_pythontex_png_1.default, anchor: "a-latex", alt: "Using PythonTex with LaTeX", wide: true }, { children: [(0, jsx_runtime_1.jsxs)("div", { children: ["The fully integrated", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/features/latex-editor" }, { children: "CoCalc latex editor" })), " covers all your basic needs for working with ", (0, jsx_runtime_1.jsx)(code_1.default, { children: ".tex" }), " files containing", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://github.com/gpoore/pythontex" }, { children: "PythonTeX" })), " or", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "http://doc.sagemath.org/html/en/tutorial/sagetex.html" }, { children: "SageTeX" })), " ", "code. The document is synchronized with your collaborators in real-time and everyone sees the very same compiled PDF."] }), (0, jsx_runtime_1.jsx)("div", { children: "In particular, this LaTeX editor" }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Manages the entire compilation pipeline for you" }), ": it automatically calls ", (0, jsx_runtime_1.jsx)(code_1.default, { children: "pythontex3" }), " or", " ", (0, jsx_runtime_1.jsx)(code_1.default, { children: "sage" }), " to pre-process the code,"] }), (0, jsx_runtime_1.jsxs)("li", { children: ["Supports ", (0, jsx_runtime_1.jsx)("strong", { children: "forward and inverse search" }), " to help you navigating in your document,"] }), (0, jsx_runtime_1.jsxs)("li", { children: ["Captures and shows you", " ", (0, jsx_runtime_1.jsx)("strong", { children: "where LaTeX or Python errors happen" }), ","] }), (0, jsx_runtime_1.jsxs)("li", { children: ["and via", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/time-travel.html" }, { children: "TimeTravel" })), " ", "you can go back in time to see your latest edits in order to", " ", (0, jsx_runtime_1.jsx)("strong", { children: "easily recover from a recent mistake" }), "."] })] }), (0, jsx_runtime_1.jsxs)("div", { children: ["Combined, this means you can do", " ", (0, jsx_runtime_1.jsx)("strong", { children: "your entire workflow online on CoCalc" }), ":"] }), (0, jsx_runtime_1.jsxs)("ol", { children: [(0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/howto/upload.html" }, { children: "Upload" })), " or fetch your datasets,"] }), (0, jsx_runtime_1.jsxs)("li", { children: ["Use ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "#a-jupyternotebook" }, { children: "Jupyter Notebooks" })), " to explore the data, process it, and calculate your results,"] }), (0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "#a-chat" }, { children: "Discuss" })), " and", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "#a-collaboration" }, { children: "collaborate" })), " with your research team,"] }), (0, jsx_runtime_1.jsx)("li", { children: "Write your research paper in a LaTeX document," }), (0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "#a-publishing" }, { children: "Publish" })), " the datasets, your research code, and the PDF of your paper online, all hosted on CoCalc.", " "] })] })] })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ title: "Code formatting", icon: "network-wired", image: cocalc_jupyter_format_python_gif_1.default, anchor: "a-codeformatting", alt: "Video of formatting Python code in a Jupyter notebook with 1 click" }, { children: [(0, jsx_runtime_1.jsx)("p", { children: (0, jsx_runtime_1.jsx)("strong", { children: "CoCalc has one-click code formatting for Jupyter notebooks and code files!" }) }), (0, jsx_runtime_1.jsxs)("p", { children: ["Your python code is formatted in a clean and consistent way using", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://github.com/google/yapf#yapf" }, { children: "yapf" })), "."] }), (0, jsx_runtime_1.jsx)("p", { children: "This reduces cognitive load reading source code, and ensures all code written by your team has a consistent and beautiful style." }), (0, jsx_runtime_1.jsxs)("p", { children: ["Python code formatting works with", " ", (0, jsx_runtime_1.jsxs)("strong", { children: ["pure ", (0, jsx_runtime_1.jsx)("code", { children: ".py" }), " files"] }), " ", "and ", (0, jsx_runtime_1.jsx)("strong", { children: "Jupyter Notebooks running a Python kernel" }), "."] })] })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ title: "Command line support", icon: "terminal", image: cocalc_frame_editor_python_png_1.default, anchor: "a-commandline", alt: "Using scikit learn from the command line to run Python code" }, { children: [(0, jsx_runtime_1.jsxs)("p", { children: ["Your existing Python scripts run on CoCalc. Either open a", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/terminal.html" }, { children: "Terminal" })), " in the code editor, or click the \"Shell\" button to open a Python command line."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["Terminals also give you access to", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://www.git-scm.com" }, { children: "git" })), " and", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/software/executables" }, { children: "many more utilities" })), "."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["Regarding collaboration, terminals can be used", " ", (0, jsx_runtime_1.jsx)("strong", { children: "by multiple users at once" }), ". This means you can work with your coworkers in the same session at the same time. Everyone sees the same output, and coordinate via", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/chat.html" }, { children: "side chat" })), " next to the terminal."] }), (0, jsx_runtime_1.jsx)("p", { children: "You can also simultaneously work with many terminal sessions." }), (0, jsx_runtime_1.jsx)("p", { children: "For long-running programs, you can even close your browser and check on the result later." })] })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ title: "Chatroom about your Python code", icon: "comment", image: cocalc_jupyter_python_sidechat_png_1.default, anchor: "a-chat", alt: "A Jupyter notebook with a chat window on the side" }, { children: [(0, jsx_runtime_1.jsxs)("p", { children: ["Collaboration is a first class citizen on CoCalc. Use", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/chat.html" }, { children: "side chat" })), " for each file to discuss content with your colleagues or students."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["Additionally, avatars give you", " ", (0, jsx_runtime_1.jsx)("strong", { children: "presence information" }), " about who is currently also working on a file."] }), (0, jsx_runtime_1.jsx)("p", { children: "Collaborators who are not online will be notified about new messages the next time they sign in." }), (0, jsx_runtime_1.jsxs)("p", { children: [(0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/chat.html" }, { children: "Chat" })), " also supports markdown formatting and ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " formulas."] })] })), (0, jsx_runtime_1.jsx)(publishing_1.default, {}), (0, jsx_runtime_1.jsx)(snapshots_1.default, {}), (0, jsx_runtime_1.jsx)(sign_in_1.default, { startup: component })] }), (0, jsx_runtime_1.jsx)(footer_1.default, {})] })] })));
}
exports.default = Octave;
function getServerSideProps(context) {
    return __awaiter(this, void 0, void 0, function () {
        return __generator(this, function (_a) {
            switch (_a.label) {
                case 0: return [4 /*yield*/, (0, with_customize_1.default)({ context: context })];
                case 1: return [2 /*return*/, _a.sent()];
            }
        });
    });
}
exports.getServerSideProps = getServerSideProps;
//# sourceMappingURL=python.js.map